C#:将变量插入文本文件

时间:2015-07-23 17:49:11

标签: c# string text-files

总结:我想将变量插入到文本文件中。我试着环顾四周,所以无济于事。也许我正在用错误的关键词搜索。我知道要将变量插入到字符串中,它只是:

string str1 = "hello {0}";
string str2 = "world";
string final = string.Format(str1, str2); //Output should be "hello world"

遵循相同的概念,我制作了一个str1的文本文件,将文本文件加载到一个字符串变量中,并重复上述过程。

str1.txt:

hello {0}

代码:

string str1 = System.IO.File.ReadAllText(@"..\..\str1.txt"); //Should load the text file as a string
string str2 = "world"
string final = string.Format(str1, str2); //Output should be "hello world"

现在,当我调用string.Format并且我不太清楚为什么时,我得到'输入字符串格式不正确'错误。

编辑:猜猜我没有提供足够的信息。抱歉!我试图插入变量的文本文件是一个类的文本文件,其中{0},{1},...插入各个点。

3 个答案:

答案 0 :(得分:0)

我在我的机器上运行了您的代码示例,它的工作方式与预期相符。我建议您查看str1.txt文件的内容并确认路径正确解析。如果这些都不起作用,请查看文件的编码。

还要注意文件中的迷路{}字符。通过将它们加倍或用

替换代码来逃避它们
string str1 = "hello {0}";
string str2 = "world";
string final = str1.replace("{0}", str2); //Output should be "hello world"

答案 1 :(得分:0)

ReadAllText()可能会给你一个字符串文字,因此{0}实际上是\{0\},并且不会按预期运行。然后string.Format()抛出异常,因为第一个字符串没有放置第二个参数的有效位置。

答案 2 :(得分:0)

确保str1中包含占位符标记。它需要{0}来知道将str2插入str1的位置。