如何替换文件中的2个双引号

时间:2012-05-16 22:27:44

标签: c#

我有2个双引号,需要用一个双引号代替。

我正在使用这种方法:

private static void ReplaceTextInFile(string originalFile, string outputFile, string searchTerm, string replaceTerm)
{
    string tempLineValue;
    using (FileStream inputStream = File.OpenRead(originalFile))
    {
        using (StreamReader inputReader = new StreamReader(inputStream))
        {
            using (StreamWriter outputWriter = File.AppendText(outputFile))
            {
                while (null != (tempLineValue = inputReader.ReadLine()))
                {
                    outputWriter.WriteLine(tempLineValue.Replace(searchTerm, replaceTerm));
                }
            }
        }
    }
}

并以这种方式调用

ReplaceTextInFile(file, file + "new", (char)34 + (char)34, (char)34);

我得到的错误是

Error   4   Argument '3': cannot convert from 'int' to 'string' 

and  Error  5   Argument '4': cannot convert from 'char' to 'string'    

我做错了什么?

4 个答案:

答案 0 :(得分:4)

(char)34+(char)34int,其值为68 该函数需要一个字符串。

我会通过"\"\""
(用反斜杠转义每个双引号)

ReplaceTextInFile(file, file + "new", "\"\"", "\"");

答案 1 :(得分:4)

我会使用ReplaceTextInFile(file, file + "new", "\"\"", "\"");

答案 2 :(得分:2)

您使用Int32char + char == int)和Char而不是两个string来调用此方法。为什么不直接使用?:

ReplaceTextInFile(file, file + "new", "\"\"", "\"");

答案 3 :(得分:1)

该函数需要四个string个。您传递两个string,然后传递int,然后传递char

char中添加两个int s会产生结果。您无法连接字符,因为char代表个别字符,所以没有任何意义,因此结果为int

最后一个是char的直接投射,其中string是预期的,这看起来很明显。