如何使用.ToUpper与.ToLower实现字符串大小写互相反转
字符串大小写翻转实现方案
核心逻辑是逐字符判断大小写属性,分别调用ToUpper()/ToLower()转换后重组字符串,非字母字符保持原有状态不变。
基础通用实现
兼容所有.NET版本,性能最优:
public static string SwapStringCase(string input) { // 空值直接返回避免报错 if (string.IsNullOrEmpty(input)) return input; char[] chars = input.ToCharArray(); for (int i = 0; i < chars.Length; i++) { if (char.IsLower(chars[i])) { chars[i] = char.ToUpper(chars[i]); } else if (char.IsUpper(chars[i])) { chars[i] = char.ToLower(chars[i]); } } return new string(chars); }
简化版写法(LINQ)
适合.NET Core 3.0及以上版本,代码更简洁:
using System.Linq; public static string SwapStringCase(string input) { return string.IsNullOrEmpty(input) ? input : new string(input.Select(c => char.IsLower(c) ? char.ToUpper(c) : char.IsUpper(c) ? char.ToLower(c) : c ).ToArray()); }
效果验证
对应示例测试结果如下:
- 输入:
hello WORLD→ 输出:HELLO world - 输入:
THIS is A TEST→ 输出:this IS a test
提示:如果需要处理特定文化的大小写转换,可以替换为
ToUpperInvariant()/ToLowerInvariant()方法避免文化差异导致的转换异常。
内容的提问来源于stack exchange,提问作者CodeDev
相关产品推荐
相关产品推荐

