System.out.println(‘a’ + ‘b’ + ‘c’ + “”); –>294
System.out.println(“” + ‘a’ + ‘b’ + ‘c’); –>abc
咦?!第一个输出结果居然是数字,是不是很神奇啊,这是为什么吗?到底发生了什么呀?
经过对结果的分析可知:
在第一个输出中,前三个字符相加,并不是简单的执行字符和字符之间的连接操作,而是把字符对应的ASCII值相加了起来,最后在和 “” 这个空字符串相加,这时候才是执行的字符串连接的操作,ASCII值变成了字符串,导致最后输出的是“294”。
在第二个输出中,”“直接和第一个字符连接操作,变成一个新的字符串”a”,这个字符串再和后面的字符相加时,后面的字符转化成了字符串,和前面的字符串拼接在一起,变成一个新的字符串。以此类推,最后得到了字符串”abc”。
综上所述,单个字符之间相加时,系统会把其对应的ASCII值相加起来,并不会把字符变成字符串,一个字符串和一个字符相加时,字符转化成字符串,两个字符串进行拼接操作。字符串和多个字符之间用加号连接时,应多加注意字符的位置。
版权声明:本文为u011453680原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。