我在这里看到一些与删除双引号有关的问题。但这并没有解决我的问题。他们告诉我们使用 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();
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/