成语大全网 - 汉语词典 - Java字符串问题

Java字符串问题

首先你得知道,这些char的值,虽然以数字赋值,但在Unicode编码里分别代表了以下字符,由于Java里char是16位的,学过c的话,你会觉得很奇怪为什么char可以赋值这么大,这涉及的国际化的问题,不说这么多。

char c1 = 74; 'J'

char c2 = 97; 'a'

char c3 = 118; 'v'

char c4 = 97; 'a'

char c5 = 32534; '编'

char c6 = 31243; '程'

char c7 = 35789; '思'

char c8 = 20856; '想'

至于你出现的问题是Java本身机制的原因,在做运算时,Java会自动进行类型提升,第一个里面string类型级别高,后面的char都要转换成string的,所以就变成了这样的字符串连接

"对应的字符串是:" + "J" + "a" + "v" + "a" + "编" + "程"+ "思" + "想"

当然这根String出现的顺序也有关系,比如楼上那位说的

c1 + c2 + c3 + c4 +""+ c5 + c6 + c7 + c8

这样去改这个算式,这个写的很好

首先它从开始读取字符发现前四个都是char型的,然后他就把char提升为int型的做运算,得到他们数值的和->386。当前表达式的级别为int。

然后接着读取发现出现了一个"",就是String类型的空串,那个当前表达式级别立刻提升为string,得到了"386"。注意他是字符串类型了。

然后下面读取到的字符也当做字符串处理,

所以就得到了386编程思想。

估计你也明白了 为什么你得到120808了。int一下做运算都要提升到int。