[英]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.