两个字符串的混合产生不需要的输出

我只是在尝试融合 Java 中的字符串(我不知道我们怎么称呼它们,所以我说的是融合)

int sum = 11+13;
int sum2 = 12+4;

然后我开始用不同的字符串融合来打印它们,例如:

System.out.println(  "Answer is " + sum + sum2 );  //Answer is 2416
System.out.println(  "Answer is " + sum + ' ' + sum2  );  //Answer is 24 16
System.out.println(  "Answer is " + (sum+sum2)  );  //Answer is 40
System.out.println(  "Answer is " + (sum + ' ' + sum2)  );  //Answer is 24 16

它适用于第 1、第 2 和第 3 条语句。但是在 4 中,它的输出是

答案是 72

但是为什么会来呢?我认为输出应该是

答案是 24 16

首先我们输出字符串“Answer is”,然后我们输出这个 - (sum + ' ' + sum2) 并且由于 sum 和 sum 2 之间有一个字符串,它们也将成为一个字符串。但相反,它给出了输出 72。
此外,如果有帮助,我将使用 IntelliJ 来运行此程序。
最后一件事,如果我将 ' ' 替换为“”,这将非常有效,但为什么呢?它适用于第二个语句。

回答

因为' 'in(sum + ' ' + sum2)被认为是 32 的字符代码。

    int b = ' ';
    System.out.println(  "Answer is " + b  );  //Answer is 32

所以,24 + 32 + 16 = 72


以上是两个字符串的混合产生不需要的输出的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>