这有什么原因吗?我问这个问题是因为如果你需要使用大量的空字符,那么你就会陷入与你使用大量空字符串时相同的情况。
编辑:这种用法的原因是:
myString.Replace ('c', '')
所以从myString中移除所有的'c'实例。
这有什么原因吗?我问这个问题是因为如果你需要使用大量的空字符,那么你就会陷入与你使用大量空字符串时相同的情况。
编辑:这种用法的原因是:
myString.Replace ('c', '')
所以从myString中移除所有的'c'实例。
当前回答
从字符串中删除字符最简单的方法是修剪它
Cl = Cl。削减(' ');
删除字符串中的所有空格
其他回答
没有空char这样的东西。你能得到的最接近的是“\0”,Unicode“null”字符。既然你可以将它嵌入到字符串字面量中,或者很容易地表达它,为什么要为它设置一个单独的字段呢?同样,“很容易混淆”和“”参数不适用于“\0”。
如果你能给出一个例子,说明你想在哪里使用它,以及为什么你认为它会更好,这可能会有帮助……
没有空字符这种东西。它总是包含一些东西。甚至“\0”也是一个字符。
我知道这个很老了,但我最近遇到了一个问题,必须进行多次替换才能使文件名安全。首先,在最新的。net字符串中。替换函数null相当于空字符。话虽如此,. net中缺少的是一个简单的replace all,它将数组中的任何字符替换为所需的字符。请随意参考下面的代码(在LinqPad上运行测试)。
// LinqPad .ReplaceAll and SafeFileName
void Main()
{
("a:B:C").Replace(":", "_").Dump(); // can only replace 1 character for one character => a_B_C
("a:B:C").Replace(":", null).Dump(); // null replaces with empty => aBC
("a:B*C").Replace(":", null).Replace("*",null).Dump(); // Have to chain for multiples
// Need a ReplaceAll, so I don't have to chain calls
("abc/123.txt").SafeFileName().Dump();
("abc/1/2/3.txt").SafeFileName().Dump();
("a:bc/1/2/3.txt").SafeFileName().Dump();
("a:bc/1/2/3.txt").SafeFileName('_').Dump();
//("abc/123").SafeFileName(':').Dump(); // Throws exception as expected
}
static class StringExtensions
{
public static string SafeFileName(this string value, char? replacement = null)
{
return value.ReplaceAll(replacement, ':','*','?','"','<','>', '|', '/', '\\');
}
public static string ReplaceAll(this string value, char? replacement, params char[] charsToGo){
if(replacement.HasValue == false){
return string.Join("", value.AsEnumerable().Where(x => charsToGo.Contains(x) == false));
}
else{
if(charsToGo.Contains(replacement.Value)){
throw new ArgumentException(string.Format("Replacement '{0}' is invalid. ", replacement), "replacement");
}
return string.Join("", value.AsEnumerable().Select(x => charsToGo.Contains(x) == true ? replacement : x));
}
}
}
与字符串不同,char是一个大小固定的离散的东西。字符串实际上是字符的容器。
所以,Char。在这种情况下,空是没有意义的。如果你有一个char,它就不是空的。
不是回答你的问题,但表示一个默认字符,你可以使用just
default(char)
这和char是一样的。MinValue,与\0相同。但是不应该将它用于空字符串之类的东西。