即使这么简单,这个问题很难在Google上提出.基本上我写了这个:
public static void main(String[] args) {
char cipher[] = {'a','b','c','c','d','t','w'};
System.out.println(cipher[0]+cipher[2]);
}
}
Run Code Online (Sandbox Code Playgroud)
而println的结果是:196而不是ac.当然,当我这样做
System.out.println(cipher[0]+""+cipher[2]);
Run Code Online (Sandbox Code Playgroud)
它向我展示了如预期的那样.所以我的问题是这196是什么?谢谢!
所以我的问题是这196是什么?
它是'a'(97)的UTF-16代码单元,后面是'c'的UTF-16代码单元(99).
除了字符串连接之外,加法运算符的操作数还经历了二进制数字提升(JLS 5.6.2),因此您实际上正在执行int值的添加.您的代码相当于:
System.out.println((int) cipher[0] + (int) cipher[2]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5925 次 |
| 最近记录: |