为什么不是string.Replace按我的预期工作?

时间:2012-02-28 11:49:18

标签: c# string replace

我正在编写c#代码来替换文件中的某些单词。我写的2行演示简单代码不起作用。没有错误,Console.WriteLine也提供了正确的输出。

string strFileContent = File.ReadAllText(@"C:\Users\toshal\Documents\TCS\stop_words.txt");
Console.WriteLine("strfilecontent" + strFileContent);
strFileContent = strFileContent.Replace("actually" , " ");

字符串“实际”未在文件中被替换。 这可能是什么问题?

2 个答案:

答案 0 :(得分:10)

当然,它没有在文件中被替换,因为你只是读取数据然后改变它。

如果要应用更改,则必须将其写回文件。

string strFileContent = File.ReadAllText(@"C:\Users\toshal\Documents\TCS\stop_words.txt");
Console.WriteLine("strfilecontent" + strFileContent);
strFileContent = strFileContent.Replace("actually" , " ");

StreamWriter SW = File.CreateText(@"C:\Users\toshal\Documents\TCS\stop_words.txt");
SW.Write(strFileContent);
SW.Close();

答案 1 :(得分:5)

您正在创建一个包含替换值的字符串,但您永远不会将该值写回文件。因此,文件保持不变。

要修复,请添加以下行以将更改后的值写回文件:

string path = @"C:\Users\toshal\Documents\TCS\stop_words.txt";
string strFileContent = File.ReadAllText(path);
Console.WriteLine("strfilecontent" + strFileContent);
strFileContent = strFileContent.Replace("actually" , " ");
File.WriteAllText(path, strFileContent);