首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

char跟int之间的转换

2012-12-24 
char和int之间的转换int i 5char c 0+5//可行...char c 0+i//不可行在手机屏幕上输出数字字符

char和int之间的转换


int i =5;
char c = '0'+5;//可行...

char c = '0'+i;//不可行

在手机屏幕上输出数字字符(char)Rand.nextInt(10);输出乱码,所以想用用‘0’+的办法...现在转换出问题了SOS
[最优解释]
char c =(char)((int)'0'+i);
[其他解释]
用字符串输出
String s=String.valueOf(Rand.nextInt(10));
[其他解释]
5是常量,编译器能立马计算出'0'+5的值,并判断其是否在char的取值范围内

'0'+i中的i是变量,编译器无法确定结果是否在char的取值范围内
[其他解释]
char c = (char) ('0' + i);
[其他解释]
二楼说的也对,我再在这说得明白点吧,希望能说到明白:
你可以这样理解,i 是变量,他可以指向的的类型多,在这里你就应该可以知道,所以不确定,Java就不允许你这样子做,
我觉得LZ别的应该可以理解了的。
[其他解释]
int i =5;
char c = '0'+5;//可行...
 
char c = '0'+i;//不可行
对于第一句:‘0’+5是字符‘0’对应的ASCII码值加5,即48+5 = 53,对应字符是‘5’,也可以转换成int型输出53

对于第二句:i是int型,字符‘0’与i相加会将‘0’化为其ASCII码值48,再加i,也是53,然后53赋值给 c,但int型不能转型成char型,除非强转,改为char c = (char)(‘0’+i);可行

[其他解释]
二楼正解,这里不解释
[其他解释]
在这补充下,要考虑java的运行机制。char c = '0'+5;能够在程序的编译阶段确定关系,而char c = '0'+i;是在程序的运行阶段确定的。

热点排行