今天刚学的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(" "); /*考虑到有字符中包含数字或其他特殊字符的情况,
让不是字母的字符以空格代替*/
}
当看到
这些比较符后面的数字不懂什么意思,别急,我这里有张图参考
通过上表可以看到
小写字母中a-z的ascll范围97-122;
大写的字母A-Z的ascll范围65-90;
这样就可以解释第四步中的if语句里的比较符数值指的就是a-z的范围和大写A-Zd的范围
不知道我的解释到不到位啊,看不懂的可以评论或私信我,我们一起共同努力,共同进步!!!
相关文章
暂无评论...