当字符串在资源中时,为什么String.Format不能对字符进行转义?

查尔斯·伯恩斯
var result1 = String.Format("Hello\n\t{0}\n\n", "Bill");
// MyResource.FormatMe contains the same text: Hello\n\t{0}\n\n
var result2 = String.Format(MyResource.FormatMe, "Bill");

result1符合预期:

"Hello
    Bill

"

result2不是:

Hello\n\tBill\n\n

String.Format当格式字符串来自资源时,为什么不转义转义字符?

n0rd

String.Format没有逃脱任何东西。它的编译器,该过程\n\t并在字符串成别的东西(其它转义序列也就是说,如果你看一下二进制,通过编译器产生并搜索字符串,你不会找到文字\字符后跟n有,但实际字节换行符)。因此,代码中不存在任何字符串文字的内容都不会处理转义序列。

您可以轻松地对字符串进行预处理,以进行更改\n\t转换为实际的换行符和制表符:

string result2_format = MyResource.FormatMe.Replace("\\n", "\n").Replace("\\t", "\t");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么字符串来自 Kotlin 中的字符串资源文件时没有被替换?

“不是在布局中对字符串进行硬编码,而是使用字符串资源的最佳实践。” 但为什么?

为什么不能计算字符串中的管道字符?

当字符串设置为标签的文本并显示在面板中时,为什么string.Format不起作用?

为什么在Android中无法更改资源文件中字符串的颜色?

为什么在创建const字符串变量时不能使用String.Empty?

为什么 __rmod__ 不能对字符串正常工作?

android 资源字符串转换。为什么?

为什么我的应用从本地化资源中获取错误的字符串?

为什么我无法从Android中的服务读取字符串资源

转义数组中的字符串以进行Postgresql查询时使用什么php函数

为什么我在React Component中传递属性时不需要放字符串转义字符

为什么Go中的字符串不能为零?

为什么不能对OrderedDict进行洗牌?

在对字符串进行操作时,为什么将字符串转换为charArray?

如果不能对两个字符串执行减法,如何在 Typescript 中对字符串进行排序?

当条件为“if '-' in string:”时,为什么“print (string)”不打印字符串:

为什么我不能更改字符串中的子字符串?

在malloc()ed对象中读取字符串错误的字符时出错。为什么?

为什么在C中打印字符而不在字符串时使用星号作为指针?

为什么 C 在处理字符串/字符时不需要 scanf() 中的 '&'

为什么在尝试在 Java 中拆分字符串时出现空字符串?以及如何修复它?

为什么在比较相同文本的子字符串时std:string不返回0?

为什么在动态分配字符串时string :: c_str()返回const char *?

为什么键入错误:<string>中的字符串要求字符串作为左操作数,而不是列表

为什么我不能对此子流程模块方法返回的“字符串”执行正则表达式?

尝试从Jframe中的表中获取字符串时,为什么会出现错误?

为什么不计算字符串中的字符?

为什么Regexp.ReplaceAllString转义替换字符串中的某些字符?