想要从字符串中删除双引号

12 c# string replace c#-3.0 c#-4.0

我在这里看到一些与删除双引号有关的问题.但它没有解决我的问题.他们告诉使用Replace或Trim功能.我用过,但问题仍然存在.

我的代码:

DataTable dt = TypeConveriontHelper.ConvretExcelToDataTable(SourceAppFilePath);
        string targetPath = BatchFolderPath + @"\" + "TRANSACT.INX";
        StreamWriter wrtr = null;
        wrtr = new StreamWriter(targetPath);
        for (int x = 0; x < dt.Rows.Count; x++)
        {
            string rowString = "";
            for (int y = 0; y < dt.Columns.Count; y++)
            {
                if (y == dt.Columns.Count - 1)
                {
                    rowString += "\"" + dt.Rows[x][y].ToString() + "\"";
                }
                else
                {
                    rowString += "\"" + dt.Rows[x][y].ToString() + "\"~";
                }
            }           
            rowString.Replace('"', ' ').Trim();
            wrtr.WriteLine(rowString);
        }
        wrtr.Close();
        wrtr.Dispose();
Run Code Online (Sandbox Code Playgroud)

我试过rowString.Replace('"', ' ').Trim();在上面的代码中使用.但双引号存在.向我展示一个解决方案.谢谢.

Hab*_*bib 30

您需要将其分配回rowString:

rowString = rowString.Replace('"', ' ').Trim();
Run Code Online (Sandbox Code Playgroud)

字符串不可变的.

row.String.Replace(...)会返回一个字符串,因为你没有给它任何东西它会被丢弃.它不会改变原始rowString对象.

您可以使用String.Empty""替换双引号和空字符串,而不是单个空格' '.所以你的陈述应该是:

rowString = rowString.Replace("\"", string.Empty).Trim();
Run Code Online (Sandbox Code Playgroud)

(请记住将双引号作为字符串 传递"\"",因为使用string.Empty的方法重载将要求两个参数都是string类型).

Trim()如果你试图string.Replace在字符串的开头或结尾处删除添加的空格,最后你可能会被删除.


pan*_*nts 16

修剪可以删除任何字符,而不仅仅是空格.

myString = myString.Trim('"');
Run Code Online (Sandbox Code Playgroud)

http://msdn.microsoft.com/en-us/library/d4tt83f9%28v=vs.110%29.aspx