3

次のコードを実行すると、例外が発生したという出力が得られません。次のコード スニペットを検討してください。

public class T
{
    public static void main(String arg[])
    {
        char a='3';
        System.out.println(a+a);
    }
}

ここでの出力は次のとおりです。102

誰か私にそれを説明してくれませんか?

4

4 に答える 4

4

この+演算子は、2 つの文字を数値 ASCII 表現である 51 に変換する暗黙の型キャストを適用します。

だから表現は

'3'+'3'

としても見ることができます

51 + 51

これは 102 です。

"33"あなたが望むのは、もはや文字ではなく文字列である結果だと思います。これを実現するには、たとえば、式の結果を暗黙的に文字列に変換するだけです。

char c = '3';
string s = "" + c + c;

もう 1 つの可能性は、StringBuilder クラスを容易にすることです。

char c = '3';
String s = new StringBuilder().append(c).append(c).toString();
于 2012-07-11T09:31:58.563 に答える
0

a+a は式として解釈されます。

「3」のアスキー値は 51 なので、51 + 51 = 102 です。

于 2012-07-11T09:30:56.943 に答える
0

c+c は 51 + 51 として表示されます。これは '3' のアスキー コードを使用するためです。33を印刷したい場合は、これを試すことができます:

System.out.println(String

.format("%c + %c", c, c));

于 2012-07-11T09:51:27.763 に答える
0

それは単なるASCII値の合計です

于 2012-07-11T09:31:18.207 に答える