TypechoJoeTheme

香草物语

统计
登录
用户名
密码
/
注册
用户名
邮箱
输入密码
确认密码

C#中string.Format输出内容中含有花括号的解决方法

Laughing博主
2018-10-04
/
0 评论
/
1,290 阅读
/
173 个字
/
百度已收录
10/04
本文最后更新于2021年04月27日,已超过1241天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

问题再现

今天在开发的时候,遇到了需要传递session的地方,我们这边是用过formstate传递的,如下:

argumentString = string.Format("{FORMSTATE~dwbh}='{0}'&{FORMSTATE~ssbm}='{1}'&{FORMSTATE~year}='{2}'&{FORMSTATE~month}='{3}'&{FORMSTATE~zclb}='{4}'&{FORMSTATE~zcbh}='{5}'", hsdw, ssbm, year, month, zclb, zcbh);

问题分析

因为花括号字符是拿来做填充检测的(比如{0}表示首个子串),函数并不知道我们最外面的花括号是文本内容,结果就解析失败了。

问题解决

细想一下微软在提供string.Format方法时,不会没有考虑到花括号问题,就像文本内双引号内容我们用 \" 表示,查了一下果然有代替表示方法,用两个连在一起的“{{”表示“{”,右花括号也同理,所以得到最终解决方案:

argumentString = string.Format("{{FORMSTATE~dwbh}}='{0}'&{{FORMSTATE~ssbm}}='{1}'&{{FORMSTATE~year}}='{2}'&{{FORMSTATE~month}}='{3}'&{{FORMSTATE~zclb}}='{4}'&{{FORMSTATE~zcbh}}='{5}'", hsdw, ssbm, year, month, zclb, zcbh);  
朗读
赞(1)
赞赏
感谢您的支持,我会继续努力哒!
版权属于:

香草物语

本文链接:

https://www.xiangcaowuyu.net/java/csharp-string-format-contains-brace.html(转载时请注明本文出处及文章链接)

评论 (0)
  1. Berita Menarik Terupdate 闲逛
    Windows 7 · Google Chrome

    istat menu6序列号_木子网

    2019-12-03 回复
  2. sdanny 闲逛
    MacOS · Google Chrome

    谢谢分享

    2019-04-07 回复