又是一道面试题,我只想到两种方式:

第一种:循环字符串,判断每个字符串的类型,再根据类型对该字符进行操作(转大写、转小写、不变或舍弃)

  1. static void Main(string[] args)
  2. {
  3. //大写转小写,小写转大写,数字保留,其他除外
  4. string str = "Aa Bb 123!@#"; //测试字符串
  5. string newStr = string.Empty; //用于存放新字符串
  6.  
  7. //循环字符串
  8. foreach (char item in str)
  9. {
  10. if (item >= 'a' && item <= 'z')
  11. {
  12. //小写字母转大写
  13. newStr += item.ToString().ToUpper();
  14. }
  15. else if (item >= 'A' && item <= 'Z')
  16. {
  17. //大写字母转小写
  18. newStr += item.ToString().ToLower();
  19. }
  20. else if (item >= '0' && item <= '9')
  21. {
  22. //数字不变
  23. newStr += item.ToString();
  24. }
  25. }
  26. //打印
  27. System.Console.WriteLine(newStr);
  28. System.Console.ReadLine();
  29. }

第二种:将字符串转为byte[],循环byte[],使用ASCII码进行判断

  1. static void Main(string[] args)
  2. {
  3. //大写转小写,小写转大写,数字保留,其他除外
  4. string str = "Aa Bb 123!@#"; //测试字符串
  5. string newStr = string.Empty; //用于存放新字符串
  6.  
  7. //字符串-->byte[]
  8. ASCIIEncoding ascii = new ASCIIEncoding();
  9. byte[] bytes = ascii.GetBytes(str);
  10.  
  11. //循环byte[]
  12. foreach (byte item in bytes)
  13. {
  14. //临时存放
  15. byte[] temp = new byte[] { item };
  16.  
  17. if (item >= 97 && item <= 122)
  18. {
  19. //小写字母转大写
  20. newStr += ascii.GetString(temp).ToUpper();
  21. }
  22. else if (item >= 65 && item <= 90)
  23. {
  24. //大写字母转小写
  25. newStr += ascii.GetString(temp).ToLower();
  26. }
  27. else if (item >= 48 && item <= 57)
  28. {
  29. //数字不变
  30. newStr += ascii.GetString(temp);
  31. }
  32. }
  33. //打印
  34. System.Console.WriteLine(newStr);
  35. System.Console.ReadLine();
  36. }

备注:数字,字母的ASCII码对照表

  1. /*
  2. 0~9数字对应十进制48-57
  3. a~z字母对应的十进制97-122十六进制61-7A
  4. A~Z字母对应的十进制65-90十六进制41-5A
  5. */

结果打印:

C# 字符串大写转小写,小写转大写,数字保留,其他除外的更多相关文章

  1. Java判断一个字符串中有多少大写字母、小写字母和数字

    Java判断一个字符串中有多少大写字母.小写字母和数字 思路: 大写字母就是A-Z之间,小写字母是a-z之间,数字就是0-9之间,于是做判断就好:用到的String知识点,遍历字符串, 长度方法len ...

  2. python title() upper() lower() 以首字母大写的方式显示每个单词/将字符串改为全部大写或全部小写

    以首字母大写的方式显示每个单词 [root@chenbj python]# cat name.py #!/usr/bin/env python # _*_ coding:utf-8 _*_ name ...

  3. Expression构建DataTable to Entity 映射委托 sqlserver 数据库里面金额类型为什么不建议用float,实例告诉你为什么不能。 sql server 多行数据合并成一列 C# 字符串大写转小写,小写转大写,数字保留,其他除外 从0开始用U盘制作启动盘装Windows10系统(联想R720笔记本)并永久激活方法 纯CSS打造淘宝导航菜单栏 C# Winform

    Expression构建DataTable to Entity 映射委托   1 namespace Echofool.Utility.Common { 2 using System; 3 using ...

  4. toUpperCase(),toLowerCase()将字符串中的英文转换为全大写或全小写

    package seday01;/** * String toUpperCase() * String toLowerCase() * 将字符串中的英文转换为全大写或全小写 * @author xin ...

  5. 【C语言】创建一个函数,利用该函数将字符串中的小写字母转换为大写字母

    原理: 这类题目主要通过ASCII(美国信息交换标准代码)码差值实现,A对应ASCII码十进制数字是65,a对应ASCII码十进制数字是97,即大小写字母之间ASCII码差值为32,想要将大写字母转换 ...

  6. Day_12【集合】扩展案例3_产生10个长度为10,不能重复,由数字0-9,小写字母和大写字母组成的字符串

    分析以下需求,并用代码实现 1.产生10个1-20之间的随机数要求随机数不能重复 2.产生10个长度为10的不能重复的字符串(里面只能出现大写字母.小写字母.0-9的数字),并遍历打印输出 代码 pa ...

  7. Day_11【集合】扩展案例2_使用普通for循环获取集合中索引为3的元素并打印,统计集合中包含字符串"def"的数量,删除集合中的所有字符串",将集合中每个元素中的小写字母变成大写字母def",

    分析以下需求,并用代码实现 1.定义ArrayList集合,存入多个字符串"abc" "def" "efg" "def" ...

  8. 【C语言】(数组)C语言字符串中的小写字母转换为大写字母

    先判断后转化 原理: 这类题目主要通过ASCII(美国信息交换标准代码)码差值实现,A对应ASCII码十进制数字是65,a对应ASCII码十进制数字是97,即大小写字母之间ASCII码差值为32,想要 ...

  9. 【Python实践-6】将不规范的英文名字,变为首字母大写,其他小写的规范名字

    #利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字. def f1(s): s=s.capitalize() return s list1= ['adam', 'L ...

随机推荐

  1. latex表格代码

     基本代码 \begin{table}[!h] \caption{Notations Used in Real-time Analysis.} \label{table:notation} \cent ...

  2. 大数据 Spark 架构

    一.Spark的产生背景起源 1.spark特点 1.1轻量级快速处理 Saprk允许传统的hadoop集群中的应用程序在内存中已100倍的速度运行即使在磁盘上也比传统的hadoop快10倍,Spar ...

  3. 秒杀系统-web

    秒杀系统Web层主要涉及前端交互设计.Restful:url满足Restful设计规范.Spring MVC.bootstrap+jquery这四个方面的开发.秒杀系统的前端交互流程设计如下图6-3所 ...

  4. ubuntu 配置jdk报错解决办法

    vi /etc/profile ,添加如下代码 export JAVA_HOME=/home/mark/android/jdk1.8 export JRE_HOME=/home/mark/androi ...

  5. docker 容器和镜像理解

    1.镜像是Docker容器的基石,容器是镜像的运行实例,有了镜像才能启动容器.容器和镜像是一对一的,一个容器里就运行一个镜像. 1.base镜像----提供了一个基本的操作系统环境,用户可以根据需要安 ...

  6. 关于SGA中的granule size

    1.什么是granule? granule直译为颗粒,ORACLE为SGA 中的组件(eg:log buffer/db buffer/large pool等)分配的最小单元为一个granule. 所以 ...

  7. Android开发 - 设置DialogFragment全屏显示

    默认的DialogFragment并不是全屏,但有些需求需要我们将对话框设置为全屏(内容全屏),Android并没有提供直接的API,通过其它不同的方法设置全屏在不同的机型上总有一些诡异的问题,经过测 ...

  8. Delphi - TDateTimePicker使用注意问题

    TDateTimePicker使用时候,如果想获取到修改后的值,必须注Kind和time属性必须对应! 1,时间设置: treatmentTime1DTPicker.Kind := dtkTime; ...

  9. Eclipse 中 Debug 调试 java 代码一直报 Source not found

    今天使用eclipse的debug调试代码,一直没法正常调试,一按F6就提示Source not found 根据提示发现可能是另一个项目影响了,所以把另一个项目Close Project,这次直接t ...

  10. JDBC的使用和SQL注入问题

    基本的JDBC使用: package demo; import java.sql.Connection; import java.sql.DriverManager; import java.sql. ...