今天刚学的java 字符串大小写的转化 写的不详细或错误请指出啊谢谢!!!

第一步首先要写输入对象的定义,用到Scanner来接收输入的字符串

Scanner sc = new Scanner(System.in);

第二步定义一个字符串类型的str来接收这个字符串

String str = sc.next();

第三步要把接收的这段字符串放入char类型的数组

char[] arrays = str.toCharArray();

做第四步前要需要写两个方法

1.小写转化大写的方法  

	public static char toUpperCase(char c1){
		int a = (int) c1;//将接收到的小写字符c1转换成int类型的数据给a
		int b =a-32;     //a-32得出小写对应大写的ascll数值
		char bb = (char)b;//最后将b转换成char类型字符给bb
		return bb;        //返回bb;就是返回大写的字符
		
	}

2.大写转化小写的方法

	public static char toLowerCase(char c1){
		int a = (int) c1;//将接收到的小写字符c1转换成int类型的数据给a
		int b =a+32;     //a+32得出大写写对应小写的ascll数值
		char bb = (char)b;//最后将b转换成char类型字符给bb
		return bb;        //返回bb;就是返回字母小写的字符
		
	}

写完toUpperCase, toLowerCase方法之后就是要将字符数组中的字符转换成对应的大小写字母,代码如下:

for(int i = 0;i<arrays.length;i++){ 
	char c1=arrays[i];     //依次显示输入字符串变数组之后的每一个字符
			
	if(c1>=97 && c1<=122){    //如果输入是小写 ,则调用toUpperCase方法
			char c2 = toUpperCase(c1);
			System.out.print(c2);
	}
	else if(c1>=65 && c1<=90){    
			char c2 = toLowerCase(c1);//如果输入是大写  ,则调用toLowerCase方法
			System.out.print(c2);
		}else{
			System.out.print(" ");    /*考虑到有字符中包含数字或其他特殊字符的情况,
                                        让不是字母的字符以空格代替*/
		}

当看到

 

 这些比较符后面的数字不懂什么意思,别急,我这里有张图参考

ascll中大小字母数值表

 

通过上表可以看到

        小写字母中a-z的ascll范围97-122;

        大写的字母A-Z的ascll范围65-90;

这样就可以解释第四步中的if语句里的比较符数值指的就是a-z的范围和大写A-Zd的范围

不知道我的解释到不到位啊,看不懂的可以评论或私信我,我们一起共同努力,共同进步!!!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐