什么是将C#字符串中所有字母的大小写反转的最简单方法?例如, "aBc1$;" 应变为 "AbC1$;" 我可以轻松地编写一个方法来实现这一点,但我希望有一个库调用可以使这更容易。我也想避免拥有所有已知字母字符并将每个字符与列表中的内容进行比较。也许可以用正则表达式来实现,但我不太了解它们。谢谢。
谢谢帮助。我创建了一个字符串扩展方法,大部分灵感来自Anthony Pegram的解决方案,但没有使用LINQ。我认为这在可读性和性能之间取得了很好的平衡。这是我想出的方法。
谢谢帮助。我创建了一个字符串扩展方法,大部分灵感来自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);
}