黑马程序员技术交流社区
标题:
大小写字母转换的问题
[打印本页]
作者:
arthur
时间:
2013-4-4 19:41
标题:
大小写字母转换的问题
本帖最后由 arthur 于 2013-4-4 22:40 编辑
import java.io.*;
public class T20006 {
public static void main(String[] args) throws IOException
{
char ch;
ch=(char)System.in.read();
/*------------------*/
ch=(char)(ch+32); //这里的ch+32是什么意思???
System.out.println(ch);
}
}
这是段把输入的大写字母转成小写的代码,为什么转换的时候要ch+32,望同学指点
复制代码
作者:
李芳池
时间:
2013-4-4 19:58
大小写字母的区别在于他们的ASCII码范围,他们之间的转换其实就是加减相应的ASCII码值,
你去看一下ASCII码表,例如:A的ASCII码为65,a的ASCII码为97,所以大写转换成小写要(ch+32),小写转换大写就是(ch-32)
作者:
刘胜寒
时间:
2013-4-4 19:59
a==对应的int值是97
A对应的是65
若你你懂得了...
查看ASCII码表你就知道了。
建议你用Character.toUpperCase();你就不用判断ch是否为大小写了...
作者:
刘印12
时间:
2013-4-4 20:01
本帖最后由 刘印12 于 2013-4-4 20:06 编辑
例如a=97,A=65. b=66 B=97 ,c=99 C=65.........他们之间大小写的ASCII都是相差32 也就是说每一个小写的字母与其对应的大写字母在ASCII表中的相差值为32!!
作者:
yangyinhui
时间:
2013-4-4 20:02
你查一下ASCLL表。看一下大写字母和小写字母的ASCLL码相差多少(呵呵。是32)。然后这样:ch=ch+32;
ch=(char)(ch+32); 因为ch+32为int类型,所以还要强转为char
作者:
杜加璇
时间:
2013-4-4 20:03
是这样的字符都有他对应的码表值 比如说a对应的是97 A对应的是65,这一步ch=(char)(ch+32);执行ch+32时字符会先转换成它对应的码表值进行运算。因为俩个数运算时 其结果会是精度高的那个类型所以这一步执行的结果是int型的要得到char型的还需要强转。而这里为什么要加32, 就是得到你输入的大写字母对应的小写字母的码表值在用char转回对应的小写字母 就得到了大写字母对应的小写字母
作者:
蔡陶军
时间:
2013-4-4 20:43
import java.io.*;
public class Exercise1 {
public static void main(String[] args) throws IOException
{
char ch=(char)System.in.read();
System.out.println(Character.toUpperCase(ch));
}
}
复制代码
作者:
张先龙
时间:
2013-4-4 21:34
一句话:去看ACII码表中字母的码值就明白了!
作者:
HM陈鑫
时间:
2013-4-4 21:38
看看ACII码表 A代表一个数字65 小a代表97 所以在转换的时候要加32 每个相同字符 大小写都相差 32
作者:
陈丽莉
时间:
2013-4-4 21:42
若还有问题,继续追问; 没有的话,请将帖子分类改成【已解决】哦~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2