这有什么原因吗?我问这个问题是因为如果你需要使用大量的空字符,那么你就会陷入与你使用大量空字符串时相同的情况。
编辑:这种用法的原因是:
myString.Replace ('c', '')
所以从myString中移除所有的'c'实例。
这有什么原因吗?我问这个问题是因为如果你需要使用大量的空字符,那么你就会陷入与你使用大量空字符串时相同的情况。
编辑:这种用法的原因是:
myString.Replace ('c', '')
所以从myString中移除所有的'c'实例。
当前回答
还可以逐字符重新构建字符串,排除想要删除的字符。
下面是一个扩展方法:
static public string RemoveAny(this string s, string charsToRemove)
{
var result = "";
foreach (var c in s)
if (charsToRemove.Contains(c))
continue;
else
result += c;
return result;
}
它既不圆滑也不花哨,但效果很好。
像这样使用:
string newString = "My_String".RemoveAny("_"); //yields "MyString"
其他回答
如果你想删除满足特定条件的字符,你可以使用这个:
string s = "SoMEthInG";
s = new string(s.Where(c => char.IsUpper(c)).ToArray());
(这将在字符串中只留下大写字符。)
换句话说,您可以“使用”字符串作为IEnumerable<char>,对其进行更改,然后将其转换回如上所示的字符串。
同样,这不仅允许因为lambda表达式而删除特定的字符,尽管如果您像这样更改lambda表达式可以这样做:c => c != 't'。
我们是这样做的: myString。Replace (" '.ToString(), "");
没有空char这样的东西。你能得到的最接近的是“\0”,Unicode“null”字符。既然你可以将它嵌入到字符串字面量中,或者很容易地表达它,为什么要为它设置一个单独的字段呢?同样,“很容易混淆”和“”参数不适用于“\0”。
如果你能给出一个例子,说明你想在哪里使用它,以及为什么你认为它会更好,这可能会有帮助……
public static string QuitEscChars(this string s)
{
return s.Replace(((char)27).ToString(), "");
}
那么BOM呢,微软添加到文件开头的神奇字符(至少是XML)?