char和int之间的转换

ShenShuoSiLe 2012-11-18 09:10:22

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

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

在手机屏幕上输出数字字符(char)Rand.nextInt(10);输出乱码,所以想用用‘0’+的办法...现在转换出问题了SOS
...全文
310 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wonkju 2012-11-19
  • 打赏
  • 举报
回复
二楼说的也对,我再在这说得明白点吧,希望能说到明白: 你可以这样理解,i 是变量,他可以指向的的类型多,在这里你就应该可以知道,所以不确定,Java就不允许你这样子做, 我觉得LZ别的应该可以理解了的。
eblly 2012-11-19
  • 打赏
  • 举报
回复
在这补充下,要考虑java的运行机制。char c = '0'+5;能够在程序的编译阶段确定关系,而char c = '0'+i;是在程序的运行阶段确定的。
yonggangsun 2012-11-19
  • 打赏
  • 举报
回复
二楼正解,这里不解释
MrBye 2012-11-19
  • 打赏
  • 举报
回复
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);可行
tc@zen123 2012-11-18
  • 打赏
  • 举报
回复
char c = (char) ('0' + i);
nmyangym 2012-11-18
  • 打赏
  • 举报
回复
char c =(char)((int)'0'+i);
fly_free_will 2012-11-18
  • 打赏
  • 举报
回复
用字符串输出 String s=String.valueOf(Rand.nextInt(10));
龙四 2012-11-18
  • 打赏
  • 举报
回复
5是常量,编译器能立马计算出'0'+5的值,并判断其是否在char的取值范围内 '0'+i中的i是变量,编译器无法确定结果是否在char的取值范围内

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧