2015-02-10 62 views
1

我有一個包含一些不需要的字符的字符串,所以我想刪除這些字符。我從XML文件中讀取不需要的字符。如何從字符串中刪除 t char

"<UnwantedChars>\t,@</UnwantedChars>" 

sUnwantedChar = xml.ReadNodeValue("\UnwantedChars") 

我試圖

str = str.Replace(sUnwantedChar.Split(',')[0],string.Empty) 
str = str.Replace(sUnwantedChar.Split(',')[1],string.Empty) 

在最終結果,@被刪除,但選項卡即\t不會被刪除。

+0

你的xml的結構是什麼? – 2015-02-10 08:03:09

+0

您是否檢查過''UnwantedChar'包含的內容? – Sayse 2015-02-10 08:04:15

+0

\ t,@」 – 2015-02-10 08:05:22

回答

1

的事情是,下面的代碼返回字符串"\t"(在現實中,它是\\t),而不是字符'\t'

string unwantedChar = sUnwantedChar.Split(',')[0]; 

你可以做這樣的事情:

if (unwantedChar.Equals(@"\t")) 
    unwantedChar = "\t"; 
+0

是的..我在想同樣的事情..我該如何克服這一點。 – 2015-02-10 08:07:50

+0

而不是這樣做,我可以更改我的xml節點值嗎?如果是,那麼什麼 – 2015-02-10 08:09:43

+0

當然,你可以,因爲費利斯Pollano建議。有額外的好處,你不必爲每個可能的控制字符('\ n','\ r'等等)硬編碼異常。 OTOH,' '不像'\ t'那樣容易理解。 – 2015-02-10 08:10:29

2

您應該在XML中對選項卡進行編碼,如下所示:

"<UnwantedChars>&#09;,@</UnwantedChars>" 

否則你是餵養用文字"\t"這是二charachters,一個backslasht的字符串替換了,它顯然是行不通的。