【发布时间】:2021-04-22 13:05:02
【问题描述】:
我需要打印 'H3110 w0r1d 2.0 true' 作为输出。 下面是编写并输出为“3182 w0r1d 2.0 true”的代码。
public class HelloWorld {
public static void main (String[] args){
char c1= 'H';
int num1 = 3110;
char c2='w';
byte b=0;
char c3='r';
int y=1;
char c4='d';
float f = 2.0f;
boolean bool= true;
String s = c1+num1 + " " + c2+b+c3+y+c4 + " " + f + " " + bool;
System.out.println(s);
}
}
查询:如果我连接H 和3110,则打印为3182。为什么会这样?
【问题讨论】:
-
因为
char在添加之前基本上被提升为int。如果你改用字符串 (string c1 = "H";) 就可以了。 -
在像
char + int这样的情况下,char首先被转换为int(它对应的Unicode值(对于初学者,在这种情况下是ASCII表中的索引))然后它是常规的int + int加法。
标签: java type-conversion string-concatenation