C# 字符串大写转小写,小写转大写,数字保留,其他除外
又是一道面试题,我只想到两种方式:
第一种:循环字符串,判断每个字符串的类型,再根据类型对该字符进行操作(转大写、转小写、不变或舍弃)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | static void Main( string [] args) { //大写转小写,小写转大写,数字保留,其他除外 string str = "Aa Bb 123!@#" ; //测试字符串 string newStr = string .Empty; //用于存放新字符串 //循环字符串 foreach ( char item in str) { if (item >= 'a' && item <= 'z' ) { //小写字母转大写 newStr += item.ToString().ToUpper(); } else if (item >= 'A' && item <= 'Z' ) { //大写字母转小写 newStr += item.ToString().ToLower(); } else if (item >= '0' && item <= '9' ) { //数字不变 newStr += item.ToString(); } } //打印 System.Console.WriteLine(newStr); System.Console.ReadLine(); } |
第二种:将字符串转为byte[],循环byte[],使用ASCII码进行判断
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | static void Main( string [] args) { //大写转小写,小写转大写,数字保留,其他除外 string str = "Aa Bb 123!@#" ; //测试字符串 string newStr = string .Empty; //用于存放新字符串 //字符串-->byte[] ASCIIEncoding ascii = new ASCIIEncoding(); byte [] bytes = ascii.GetBytes(str); //循环byte[] foreach ( byte item in bytes) { //临时存放 byte [] temp = new byte [] { item }; if (item >= 97 && item <= 122) { //小写字母转大写 newStr += ascii.GetString(temp).ToUpper(); } else if (item >= 65 && item <= 90) { //大写字母转小写 newStr += ascii.GetString(temp).ToLower(); } else if (item >= 48 && item <= 57) { //数字不变 newStr += ascii.GetString(temp); } } //打印 System.Console.WriteLine(newStr); System.Console.ReadLine(); } |
备注:数字,字母的ASCII码对照表
1 2 3 4 5 | /* 0~9数字对应十进制48-57 a~z字母对应的十进制97-122十六进制61-7A A~Z字母对应的十进制65-90十六进制41-5A */ |
结果打印:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构