簡體   English   中英

如何刪除C#字符串中的空格?

[英]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),因為有兩個逗號之間的空間, JohnJane你得到:

["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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM