[英]How do you remove the space in a C# string?
我有這個代碼:
String test = "John, Jane";
test.Replace(" ","");
String[] toList = test.Split(',', ' ', ';');
您如何僅刪除字符串中的空格或可能出現的任何空間?
為什么數組中有3個項而不是2個?
要刪除任何空格,只需將其替換為任何空字符串:
test = test.Replace(" ", "");
請注意, 只調用string.Replace
不會這樣做 - 字符串是不可變的,因此string.Replace
的返回值是對具有相關替換的新字符串的引用。
它很簡單:
test=test.Replace(" ","");
如果你想刪除任何空格,你需要一個正則表達式 :
using System.Text.RegularExpressions;
Regex r=new Regex("\\s+");
test=r.Replace(test,"");
Re:為什么陣列中有3個項而不是2個?
因為你通過拆分逗號和空格(拆分ARG 1 + 2),因為有兩個逗號之間的空間, John
和Jane
你得到:
["John", "", "Jane"] // (in JSON notation ;))
string test2 = test.Replace(" ", "");
如果要刪除所有類型的空格,可以使用string noWhiteSpace = Regex.Replace("John, Jane", @"\\s", string.Empty);
如果您只想刪除空格字符,請使用string noSpace = "John, Jane".Replace(" ",string.Empty);
剛看到你在編輯中添加的問題的第二部分:
您在數組中得到三個項目,因為您的測試字符串將拆分包含在要分割的字符列表中的每個標記。 您的字符串包含空格和逗號,您可以在逗號處進行拆分,並在空格處進行拆分。
如果您不想要空條目,可以使用以下內容:
String[] toList = test.Split(new char[] {',', ' ', ';'}, StringSplitOptions.RemoveEmptyEntries);
當然,如果您刪除了空格,那么您將沒有任何空格可以拆分。
所以完整的解決方案是這樣的:
String test = "John, Jane";
test = test.Replace(" ","");
String[] toList = test.Split(',', ';');
為什么數組中有3個項而不是2個?
有兩個原因:1)當你調用Replace
你正在生成一個新的字符串,你需要將它存儲在一些變量中 - 原始字符串是不可變的 。 2)然后你在調用Split
時使用空格( ' '
)作為分隔符之一; 你不需要它(你刪除前一行中的所有空格)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.