反转C#字符串中所有字母字符大小写的最简单方法是什么?例如“aBc1 $;”应该变成“AbC1 $;”我可以很容易地编写一个这样做的方法,但我希望有一个我不知道的库调用会使这更容易。我还想避免列出所有已知的字母字符,并将每个字符与列表中的内容进行比较。也许这可以用正则表达式来完成,但我不太了解它们。谢谢。C#字符串中所有字母字符的反向大小写
感谢您的帮助。我为此创建了一个字符串扩展方法,主要受Anthony Pegram解决方案的启发,但没有LINQ。我认为这在可读性和性能之间取得了很好的平衡。这是我想出来的。
public static string SwapCase(this string source) {
char[] caseSwappedChars = new char[source.Length];
for(int i = 0; i < caseSwappedChars.Length; i++) {
char c = source[i];
if(char.IsLetter(c)) {
caseSwappedChars[i] =
char.IsUpper(c) ? char.ToLower(c) : char.ToUpper(c);
} else {
caseSwappedChars[i] = c;
}
}
return new string(caseSwappedChars);
}
注:我的答案中有一些国际化笔记。 – ErikE 2010-09-10 01:39:47