使用变量作为string中的格式字符串.格式,当它包含 时
本文关键字:格式 字符串 包含 变量 string | 更新日期: 2023-09-27 18:05:39
我想从文件中读取一行,并使用该行作为字符串的格式说明符。
文件中的行包含一个换行字符转义序列'n。所以它可能看起来像这样:
Hello{0}'n'nWelcome to the programme
我想在这样的情况下使用它:
string name_var = "Steve";
string line = ReadLineFromFile();
string formatted_line = String.Format(line, name_var);
不幸的是,结果如下:
嗨,Steve'n'n欢迎来到我们的节目
而我希望它看起来像:
你好史蒂夫
欢迎来到我们的节目
任何想法?
当您在c#程序中使用转义序列(如'n
)时,编译器会处理字符串,并将相应的不可打印字符的代码插入到字符串文字中。
当您从文件或其他导入源中读取一行时,转义序列的处理成为您的程序的责任。没有内置的方法可以做到这一点。如果您只想要'n
,则可以使用简单的
formatString = formatString.Replace("''n", "'n");
如果您希望支持其他转义序列,例如UNICODE字符的转义序列,则可以使用此问题的答案中的解决方案。
用换行符替换字符串中的'n
:
string name_var = "Steve";
string line = ReadLineFromFile();
line = line.Replace("''n", Environment.NewLine);
string formatted_line = String.Format(line, name_var);