2011-01-25 126 views
3

得到了永恆不變的部分,永遠懷念的是,感謝所有你怎麼刪除空間

大家好,

String test = "John, Jane"; 

test.Replace(" ",""); 

String[] toList = test.Split(',', ' ', ';'); 

你會如何字符串或任何空間,只刪除空間顯示可能?

爲什麼數組中有3個項目而不是2個?

回答

13

要刪除的任何空間,只需用任何空字符串替換:

test = test.Replace(" ", ""); 

注意只是調用string.Replace不會去做 - 字符串是不可變的,所以返回值的string.Replace是對有關替換的新字符串的引用。

test=test.Replace(" ",""); 

如果你想要的任何空白被刪除,您需要一個regex

+0

明白了並更新了OP,感謝大家的幫助。 – Rod 2011-01-25 19:51:58

5

,因爲它是那麼簡單

using System.Text.RegularExpressions; 
Regex r=new Regex("\\s+"); 
test=r.Replace(test,""); 

回覆:爲什麼會出現3個項目在數組中而不是2?

因爲你被分裂兩種逗號和空格(拆分ARG 1 + 2),因爲有兩個逗號和John之間的空間Jane你得到:

["John", "", "Jane"] // (in JSON notation ;)) 
1

如果你想拆除各類空白的,你可以使用string noWhiteSpace = Regex.Replace("John, Jane", @"\s", string.Empty);如果你只是想刪除空格字符,請使用string noSpace = "John, Jane".Replace(" ",string.Empty);

剛纔看到的第二部分你的問題,你在你的編輯說:

您在數組中獲得三個項目,因爲您的測試字符串將在要包含在要分割的字符列表中的每個標記處分割。你的字符串包含一個空格和一個逗號,並且你在逗號處得到一個分割,並在該空間分割。

如果你不想空項,可以使用以下命令:

String[] toList = test.Split(new char[] {',', ' ', ';'}, StringSplitOptions.RemoveEmptyEntries); 

當然,如果你有空格刪除,那麼你不會有任何空格在分裂。

0

因此,完整的解決方案會是這樣:

String test = "John, Jane"; 

test = test.Replace(" ",""); 

String[] toList = test.Split(',', ';'); 

爲什麼會出現在陣3項,而不是2?

原因有二:1)當你調用Replace要生成字符串,你需要將其存儲在某個變量 - 原始字符串是不可改變。 2)然後在調用Split時使用空格(' ')作爲分隔符之一;你不需要(你要刪除前一行的所有空格)。