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

标签 c# string c#-4.0 replace c#-3.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();

我尝试在上面的代码中使用 rowString.Replace('"', ' ').Trim();。但是双引号按原样存在。给我一个解决方案。谢谢。

最佳答案

您需要将其分配回 rowString:

rowString = rowString.Replace('"', ' ').Trim();

Stringsimmutable .

row.String.Replace(...) 将返回一个字符串,因为您没有为其分配任何内容,它将被丢弃。它不会改变原始的 rowString 对象。

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

rowString = rowString.Replace("\"", string.Empty).Trim();

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

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

关于c# - 想要从字符串中删除双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12740486/

相关文章:

c# - EF 代码优先,复杂实体的深层复制, "ID is part of objects key info and cannot be modified"- 错误

c# - 蓝牙文件发送

c# - 从 C# 中的 Rust DLL 获取 UTF-8 编码的字符串

C#代码运行很慢

asp.net-mvc - 反序列化 JSON 时 MVC3 RTM 失败数字类型强制

c# - C# 中的多重继承 - 再次

string - Solr:方面计数索引不能是字符串?

python - 分割字符串上的多个匹配

c#-4.0 - 使用在 C# 中执行的带有 TCP/IP 接口(interface)的 ESC/POS 命令直接打印到热敏打印机

c# - 在 while 循环期间文件正在被另一个进程使用 (C#)