有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (5) 个答案

  1. # 1 楼答案

    "abc"+3
    

    将3转换为字符串

    "abc3"
    

    然后

    "abc3" + 2
    

    也将2转换为字符串

    "abc32"
    

    要获得数值结果,请执行以下操作:

    "abc" + (3 + 2)
    
  2. # 2 楼答案

    表达式从左到右求值(在应用运算符优先顺序之后)。如果运算符+的参数之一是字符串,则结果是将int解析为字符串的串联字符串

    在第一种情况下:

    "abc" + 3 -> "abc3" // String + int -> concatenate
    "abc3" + 2 -> "abc32" // String + int -> concatenate
    

    在第二种情况下:

    3 + 2 -> 5 // int + int -> add
    5 + "abc" -> "5abc" // int + String -> concatenate
    
  3. # 3 楼答案

    因为您编写的“+”运算符表示“字符串连接”,而不是“添加”,因为它是在左上下文为字符串值的情况下找到的。在这种情况下,您可以通过隐式ToString获得正确值的自由强制

    你可能会通过写作得到你想要的

    System.out.println("abc"+(3+2))
    

    “3”没有左上下文,所以它只是一个整数;下面的“+”是左上下文整数,因此它被解释为实加法运算符,因此(3+2)得到5。该结果是在左上下文为“+”的情况下找到的,因此它被强制为一个字符串并连接起来生成“abc5”

  4. # 4 楼答案

    在第一种情况下,3和2被视为字符串,然后分别连接到abc

    在第二种情况下,计算和3+2,然后将其连接到abc

  5. # 5 楼答案

    运算符具有相同优先级的表达式的求值是从左到右的。在这种情况下,表达式中的不同顺序导致运算符+表示:

    1. 字符串的串联(整数被隐式转换toString()
    2. 两个整数之间的和

      “abc”+3+2=(“abc”+3+2)=(“abc3”+2)=“abc32”

      3+2+“abc”=((3+2)+“abc”)=(5+“abc”)=“5abc”