1

この質問はとても単純ですが、Google で尋ねるのは難しいです。基本的に私はこれを書きました:

      public static void main(String[] args) {
         char cipher[] = {'a','b','c','c','d','t','w'};
           System.out.println(cipher[0]+cipher[2]);
          }
 }

println の結果は : ac ではなく 196 でした。もちろん、私がしたとき

 System.out.println(cipher[0]+""+cipher[2]);

意図したとおりにACを示しました。だから私の質問は、この 196 は何ですか? ありがとう!

4

4 に答える 4

5

だから私の質問は、この 196 は何ですか?

これは、'a' の UTF-16 コード単位 (97) の後に、'c' の UTF-16 コード単位 (99) が続きます。

文字列連結以外では、加算演算子のオペランドは 2 進数値昇格 ( JLS 5.6.2 ) を受けるため、実際にはint値の加算を実行しています。あなたのコードは以下と同等です:

System.out.println((int) cipher[0] + (int) cipher[2]);
于 2013-10-27T21:01:37.107 に答える
0

196 は、'a' の ASCII 値 + 'c' の ASCII 値です。

char他のヒントなしで sを足し合わせると、Java はそれらを数値として解釈します。

于 2013-10-27T21:02:28.823 に答える
0

Java では、acharは基本的に、Unicode 値に対応する整数値を持つ符号なし 16 ビット整数です。196 は、「a」と「c」の整数表現の合計です。

于 2013-10-27T21:02:57.310 に答える
0

結果の 196 は、ASCII 値 de 'a' (ASCII 97) + 'c' (ASCII 99) です。

于 2013-10-27T21:03:42.657 に答える