想从字符串中删除双引号(Want to remove the double quotes from

2019-08-01 04:49发布

我看到了一些问题,这里涉及到去除双引号。 但是它没有解决我的问题。 他们告诉使用更换或修剪功能。 我使用,但问题仍然存在。

我的代码:

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();在上面的代码中,但双引号存在,因为它是Proveide我的溶液谢谢。。

Answer 1:

您需要分配回rowString

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

字符串是不可变的 。

row.String.Replace(...)将返回一个字符串,因为你没有指定任何东西就会被丢弃。 它不会改变原来的rowString对象。

您可以使用String.Empty""用一个空字符串替换,而不是单一的空间双引号, ' ' 。 所以,你的说法应该是:

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

(记住通过双引号为字符串 "\""中,由于与所述的String.Empty方法重载既需要的参数是字符串类型的)。

你可以摆脱Trim()在最后,如果你想删除空格过程中添加string.Replace在字符串的开头或结尾。



Answer 2:

修剪可以删除任何字符(S),而不仅仅是空白。

myString = myString.Trim('"');

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



Answer 3:

此行包含一个错误。

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

由于这两种更换和修整返回一个字符串,你需要这个分配给一个变量。 如果不指定字符串中,你将失去其替换和修剪方法所产生的价值。

var myString = rowString.Replace('"', ' ').Trim(); 
//Or
rowString = rowString.Replace('"', ' ').Trim(); 


Answer 4:

在VB中,你一定要试试这个:

Replace("""", "");

但在C#中,你一定要试试这个:

Replace("\"", "");


Answer 5:

rowString.Replace('"', ' ')创建一个新的String对象,并不会修改现有的字符串object.so你必须将新创建的字符串对象分配给不同的变量或覆盖现有的变数。

rowString=rowString.Replace('"', ' ').Trim()    
or
var somestring=rowString.Replace('"', ' ').Trim()


Answer 6:

作为哈比卜提到,字符串是不可变的。 任何字符串操作需要与像更换,反转等操纵数据重新设置....

因此,尝试分配替换字符串得到你想要的行为来达到的。



Answer 7:

你的问题是一个常见的错误。 这里有您需要做的:

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

请务必将结果返回给一个变量rowString = )。 如果你不这样做,C#仍将运行方法,但它不会改变的变量。 这是与任何情况下不可变对象

例:

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

不会修改实际rowString对象。

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

替换的旧值rowString与右边的代码的结果。

我写这个答案,只是意识到哈比卜解释上述同样的事情。 :)



文章来源: Want to remove the double quotes from the strings