字符数组Java

HeK*_*ToN 1 java arrays char

即使这么简单,这个问题很难在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是什么?谢谢!

Jon*_*eet 5

所以我的问题是这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)