关于java中带有System.out.print的运算符的问题
有人能告诉我区别和原因吗???????? 我举一个例子:关于java中带有System.out.print的运算符的问题,java,Java,有人能告诉我区别和原因吗???????? 我举一个例子: int a = 2; int b = 7; System.out.println(a+b); System.out.println(a+b+"String"); System.out.println("String"+a+b+"String"); System.out.println(a+b+"String"+a+b+"String");
int a = 2;
int b = 7;
System.out.println(a+b);
System.out.println(a+b+"String");
System.out.println("String"+a+b+"String");
System.out.println(a+b+"String"+a+b+"String");
System.out.println("String"+a+b+"String"+a+b);
output
9
9String
String27String
9String27String
String27String27
代码
System.out.println("String"+a+b+"String");
假设要执行字符串
串联
你可以
System.out.println("String"+(a+b)+"String");
或
请先理解字符串中“+”的含义在Java中,加号可以用来执行算术加法
它还可以用于连接字符串。以这种方式使用加号时,右侧的操作数将自动转换为字符串,然后再与左侧的操作数串联。确定
+
是指加法还是串联的过程:
+
。如果+
的左操作数表达式和右操作数表达式都是原语或包装数字,则+
是加法。否则就是字符串连接
a+b+"String"+a+b+"String"
意味着它相当于
((((a+b)+"String")+a)+b)+"String"
然后:
是加法a+b
是串联(a+b)+“String”)
是串联((a+b)+“String”)+a
是串联(((a+b)+“String”)+a)+b
是串联(((a+b)+“String”)+a+b)+“String”
<>这与java的输出<代码> 9STRIGIN 27字符串< /> >。将
int
+int
相加的结果是两个值的算术和。使用字符串添加int
的结果相当于将int
转换为其字符串
表示,然后在两个字符串
之间执行+
操作,将两个值连接起来。因此,
a+b+"String"` => (a + b) + "String"
=> (2 + 7) + "String"
=> 9 + "String"
=> "9String"
您最好查看java规范中的,您将看到如下说明,这些说明将为您提供答案
我想知道它什么时候运行是为了区分这是串联还是计算如果字符串先出现,它将执行串联我想知道它什么时候运行是为了区分这是串联还是计算所有输出之间的差异?是的,我理解+,但我不明白为什么a+b+“String”进行计算,“String”+a+b+“String”进行串联,这是我的问题。如果先执行a+b,那么它就是int类型。如果是+string,你认为这是一个错误还是输出字符串类型?所以问题是string=int+string代表string+a+b,我认为是这样。字符串的+等于string.append如果它以字符串开头,它将继续追加字符串addition是一种特殊情况。您可以将其视为编译器具有运算符重载。对所有非字符串调用ToString。Int被装箱并评估您的答案,以将该信息放入其中-不要将其留在注释中。
a+b+"String"` => (a + b) + "String"
=> (2 + 7) + "String"
=> 9 + "String"
=> "9String"
a+b+"String"+a+b+"String"` => ((((a + b) + "String") + a) + b) + "String"
=> ((((2 + 7) + "String") + 2) + 7) + "String"
=> (((9 + "String") + 2) + 7) + "String"
=> (("9String" + 2) + 7) + "String"
=> ("9String2" + 7) + "String"
=> "9String27" + "String"
=> "9String27String"