为什么有两个不同的结果?

时间:2017-09-17 12:45:35

标签: java

enter image description here 为什么("bc" + 2 + 3)有两个不同的答案?和(2 + 3 + "bc")我只更改了"bc"3以及2的顺序,但系统为添加提供了完全不同的答案

提前致谢

4 个答案:

答案 0 :(得分:3)

2017-09-17 14:45:49.522 INFO 2873 --- [main] RequestMappingHandlerMapping : Mapped "{[/allMovies],methods=[GET]}" onto public java.lang.String com.movieseat.controllers.MovieController.getAllMovies... 既可用作算术运算符,也可用作连接运算符。并且所有表达式都是从左到右执行的。因此,在+的情况下,它首先添加2和3作为算术运算符,然后当它在一侧找到字符串而在另一侧找到数字时它作为连接运算符。

答案 1 :(得分:0)

当使用+向字符串添加任何内容时,Java将其视为您要将该内容连接到字符串。

让我们看看每个案例。

"bc" + 2 + 3

+是左关联的,这意味着首先评估最左边的2个操作数。在这种情况下,它是"bc" + 2。评估结果为"bc2"。然后我们评估"bc2" + 3,生成"bc23"

2 + 3 + "bc"

首先评估最左边的两个操作数:2 + 3的计算结果为5.这是因为表达式中没有字符串。 +执行数学加法。然后我们评估5 + "bc",生成"5bc"

答案 2 :(得分:0)

Java正在从左到右阅读您的操作。如果第一个变量是一个字符串,则其余值将连接到它。在第二种情况下,您必须先编号,然后将其汇总,然后将该值与后面的字符串连接起来。这将得到结果:第一种情况:" bc23"和第二个案例" 23bc"。

答案 3 :(得分:0)

在您的情况下,如果您将字符串值放在第一个Java中,则会将所有值视为字符串,除非前两个值是可计算的。
这是一个示例代码,可以帮助您理解基本概念。

  public static void main(String[] args) {
    // TODO code application logic here
     System.out.println("bc"+2+3); //bc23
     System.out.println("bc"+(2+3)); //bc5
      System.out.println(2+3+"bc");  //5bc
      System.out.println(2+3+"bc"+2+3); //5bc23
      System.out.println("bc"+2+3==2+3+"bc");// false  

    }

enter image description here