String test = "test";
char[] test2 = {'a', 'i'};
int i=0;
test += test2[i] + "";
System.out.println(test);
正如我们怀疑的那样,输出是“testa”,但是当我们将操作数“+ =”更改为“= +”时会发生什么?现在输出是“97”并且它是一个字母的ascii代码,它很简单,但整个字符串测试发生了什么? 感谢您的建议。
答案 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=+5
或a=0+5
。
答案 3 :(得分:0)
+ =是一个常见的操作符,你知道它意味着什么。 另一方面,当你输入= +你做一个分配并将右边转换为整数,sto你得到整数(97)。