java中+ =和= +的区别?

时间:2014-03-31 21:27:31

标签: java

我很好奇一件小事。 像这样的代码:

    String test = "test";
    char[] test2 = {'a', 'i'};
    int i=0;
    test += test2[i] + "";
    System.out.println(test);

正如我们怀疑的那样,输出是“testa”,但是当我们将操作数“+ =”更改为“= +”时会发生什么?现在输出是“97”并且它是一个字母的ascii代码,它很简单,但整个字符串测试发生了什么? 感谢您的建议。

4 个答案:

答案 0 :(得分:11)

=+”版本:

test =+ test2[i] + "";

被解析为

test = (+test2[i]) + "";

The unary plus converts the char ('a') to an integer(其ASCII码97),然后通过串联空字符串转换为字符串("97")。最终结果是字符串"97"

答案 1 :(得分:10)

... += A表示增加A ... =+ A表示分配给积极的A

如果您没有注意到差异:a =+ b可以改写为:a = +b。没有=+运算符。在这种情况下:+'a'由于+运算符而被转换为int。

答案 2 :(得分:0)

如此处所示:https://ideone.com/fCtLyB

int CONST = 75;
int method1 = 5;
int method2 = 5;
method1 += CONST; //Adds the value to method1 variable
method2 =+ CONST; //Sets method2 variable to CONST
System.out.println(method1 + ", " + method2 + ", " + CONST);

这就像做a=-5一样a=0-5,除了这里a=+5a=0+5

答案 3 :(得分:0)

+ =是一个常见的操作符,你知道它意味着什么。 另一方面,当你输入= +你做一个分配并将右边转换为整数,sto你得到整数(97)。