日期:2014-05-20  浏览次数:20811 次

java中字母大小写转换的原理?
为什么如下代码能实现字母大小写的转换,求原理?
/**
* 1:讲小写字母转化成大写字母
*/
char zimu = 'a'; //小写字母
char m = (char)(zimu-32); //转化为大写字母**注意是变量名—32;
System.out.println("小写字母: " + zimu);
System.out.println("大写字母: " + m);
/**
* 2:将大写字母转化成小写字母
*/
char zimu3='B';
char q =(char)(zimu3+32);
System.out.println("大写字母"+zimu3);
System.out.println("小写字母"+q);

------解决方案--------------------
去看看api吧 上面都有
------解决方案--------------------
zimu的ascii码值减去32得到的就是其对应大写字母的ascii码值了,再转换成char类型 输出的就是大写字母A了
------解决方案--------------------
char ascii就是整形数啊 0 - 65535
------解决方案--------------------
System.out.println('a'-'A');
把这句输出,就知道了。
字符存的时候,存的是对应的ASCII码,而a对应的是97,相对的A对应的是65,差值是32。
------解决方案--------------------
实际上 Java API 上的大小写转换并没有那么简单!

Java 是支持国际化语言的,因此大小写转换也必须支持国际化!并非只有 a-z、A-Z 之类的 26 个字母!
------解决方案--------------------
char类型是可以自动转化为数字的所有你可以看到zimu-32,这样zimu会自动转化为int类型数据进行计算,计算完了就需要强制转化才能转化为char类型的,其实就和short和int类型之间的转换差不多的
------解决方案--------------------
这是通过ASCII码值来进行转换的,大小写字母对应的差值是32.