繁体   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