“现在我们要进入一个小主题,但非常有趣:那就是转换为 String 类型。”

“在 Java 中,任何数据类型都可以转换为 String。”

“听起来很不错。”

“不止是不错。几乎每种类型都可以隐式转换为 String。添加两个变量时就很容易看出,其中一个是 String,另一个是其他类型。非 String 变量将转换为 String。”

“看看个示例:”

命令名称 实际发生的情况如下
int x = 5;
String text = "X=" + x;
int x = 5;
String s = "X=" + Integer.toString(x);
Cat cat = new Cat("奥斯卡");
String text = "我的猫是" + cat;
Cat cat = new Cat("奥斯卡");
String text = "我的猫是" + cat.toString();
Object o = null;
String text = "对象是 " + o;
Object o = null;
String text = "对象是 " + "null";
String text = 5 + '\u0000' + "日志";
int i2 = 5 + (int) '\u0000';
String text = Integer.toString(i2) + "日志";
String text = "对象是 " + (float) 2 / 3;
float f2 = ((float) 2) / 3;
String text = "对象是 " + Float.toString(f2);

结论:如果添加 String 和“任何其他类型”,第二个类型将转换为 String

“请注意表格中的第四行。所有操作均从左至右执行。这就是为何 5 + '\u0000'" 与加整数相同。”

“所以,如果我写下 String s = 1+2+3+4+5+"m",我会得到 s = "15m" 吗?”

“是的。首先数字会相加,然后总和会转换为字符串。”