簡體   English   中英

有沒有從字符串中刪除空格字符的方法?

[英]Is there a method for removing whitespace characters from a string?

是否有用於刪除字符串中所有空格的string類成員函數(或其他)? 像Python的str.strip()嗎?

您可以簡單地執行以下操作:

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

如果要刪除所有空白字符,則可以使用Linq,即使該用例的語法不太吸引人也可以:

myString = new string(myString.Where(c => !char.IsWhiteSpace(c)).ToArray());

String.Trim方法刪除尾隨空格和前導空格。 它在功能上等同於Python的strip方法。

在這里,LINQ感覺有點過分了,將字符串轉換為列表,過濾列表,然后將其轉換回字符串。 為了消除所有空白,我將使用正則表達式。 Regex.Replace(s, @"\\s", "") 這是一個常見的習慣用法,可能已經過優化。

如果要刪除字符串前面或結尾的空格,則可能需要查看TrimStart()和TrimEnd()和Trim()。

如果您要根據.NET確定什么是空格來替換字符串中的所有空格(而不僅僅是開頭和結尾的空格),則可以使用一個非常簡單的LINQ查詢使其起作用。

string whitespaceStripped = new string((from char c in someString
                                        where !char.IsWhiteSpace(c)
                                        select c).ToArray());

是的,修剪。

String a = "blabla ";
var b = a.Trim(); // or TrimEnd or TrimStart

是的, String.Trim()

var result = "   a b    ".Trim();

"ab"result 默認情況下,所有空白都會被修剪。 如果只想刪除空格,則需要輸入

var result = "   a b    ".Trim(' ');

如果要刪除字符串中的所有空格,可以使用string.Replace()

var result = "   a b    ".Replace(" ", "");

"ab"result 但這不等同於Python中的str.strip()

有很多不同的方法,有些方法比其他方法更快:

public static string StripTabsAndNewlines(this string s) {

    //string builder (fast)
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < str.Length; i++) {
        if ( !  Char.IsWhiteSpace(s[i])) {
            sb.Append();
        }
    }
    return sb.tostring();

    //linq (faster ?)
    return new string(input.ToCharArray().Where(c => !Char.IsWhiteSpace(c)).ToArray());

    //regex (slow)
    return Regex.Replace(s, @"\s+", "")

}

我對Python不太了解...

如果str.strip()僅在開頭和結尾刪除空格,則可以在.NET中使用str = str.Trim() ...否則,可以將str = str.Replace ( " ", "")用於刪除所有空格。

如果它刪除了所有空白然后使用

str = (from c in str where !char.IsWhiteSpace(c) select c).ToString()

我很驚訝沒有人提到這一點:

String.Join("", " all manner\\tof\\ndifferent\\twhite spaces!\\n".Split())

string.Split默認沿char.IsWhiteSpace字符進行char.IsWhiteSpace因此,這與通過直接使用char.IsWhiteSpace過濾掉這些字符非常相似,並且在LINQ之前的環境中也可以使用。

你可以用

 StringVariable.Replace(" ","")

帶空格? 刪除空格? 為什么重要呢? 僅在搜索現有實現時才重要,但不要忘記對解決方案進行編程而不是搜索MSDN(無聊)是多么有趣。

您應該能夠使用下面2個函數中的1個從任何字符串中去除所有字符。

您可以刪除任何這樣的字符

static string RemoveCharsFromString(string textChars, string removeChars)
{
    string tempResult = "";
    foreach (char c in textChars)
    {
        if (!removeChars.Contains(c))
        {
            tempResult = tempResult + c;
        }
    }
    return tempResult;
}

或者您可以強制執行這樣的字符集(可以這么說)

static string EnforceCharLimitation(string textChars, string allowChars)
{
    string tempResult = "";
    foreach (char c in textChars)
    {
        if (allowChars.Contains(c))
        {
            tempResult = tempResult + c;
        }
    }

    return tempResult;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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