的问题说,这一切,这里是代码:为什么char连接返回“int”sum?
public class Chars
{
public static void main(String[] args){
Chars c = new Chars();
String res = c.test("abcd");
System.out.println(res);
}
public String test(String str){
String res = "";
res += str.charAt(0) + str.charAt(2);
return res;
}
}
这将返回:“196”,这是a
和c
的ASCII值的总和! 这是为什么发生? ,我期望得到“ac”。 如果我修改在这样的测试()方法的第二行:
res = res + str.charAt(0)+str.charAt(2);
结果确实是“AC”。 请有人帮助我这个疑问。我只是无法找到答案!
非常感谢您的回答,一个非常好的解释。但是,在第一种情况下,我使用“+ =”不应该表示“res + str.charAt(0)...”我的意思是什么时候添加“res”的当前值?我认为这就像首先添加“res”的实际值,然后添加其他操作数,但似乎是相反的方式。 – FraK
这是因为'+ ='的优先级低于'+',所以'+'首先出现。 – rgettman
非常感谢您的解释,现在已经编程了将近2年,并且仍然感到困惑或忘记了这些小事情:P – FraK