gpt4 book ai didi

java - 连接改变结果类型

转载 作者:行者123 更新时间:2023-12-01 07:56:58 25 4
gpt4 key购买 nike

有人问我一个问题(看起来很简单):有一个

String s1 = "ABC"

还有另外两个字符串

String s2= s1+ 2+ 3+ 5;
String s3 = 2+3+5+s1;

结果会怎样?

现在,如果您打印两个字符串,则 s2= "abc235"s3 = "10abc". 现在我对结果有点困惑。我认为这是因为操作从左开始,并且它的移动改变了它的类型,并且由于第一个是字符串,它变成了“abc2”,然后连接其他操作数。有人可以提供可能的解释吗?提前致谢..

最佳答案

基本上,Java 中的运算符结合性意味着您的第一个表达式相当于:

String s2 = ((( s1 + 2 ) + 3 ) + 5 );

这意味着:计算s1 +2。因为操作数之一是字符串,所以操作符是字符串连接,结果是字符串:ABC2

因此接下来的+也是字符串拼接,结果为字符串:ABC23;

所以最后一个+也是字符串连接,结果是字符串:ABC235

而第二个相当于:

String s2 = ((( 2 + 3 ) + 5 ) + s1 );

第一个表达式有两个整数操作数。所以它是一个加法运算符,其结果是整数:5。

接下来的+也有两个整数操作数,所以结果仍然是整数:10;

但是最后的+有一个String操作数,所以操作是字符串连接,结果是字符串:10ABC

关于java - 连接改变结果类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28916457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com