次のコードを実行すると、例外が発生したという出力が得られません。次のコード スニペットを検討してください。
public class T
{
public static void main(String arg[])
{
char a='3';
System.out.println(a+a);
}
}
ここでの出力は次のとおりです。102
誰か私にそれを説明してくれませんか?
この+
演算子は、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();
a+a は式として解釈されます。
「3」のアスキー値は 51 なので、51 + 51 = 102 です。
c+c は 51 + 51 として表示されます。これは '3' のアスキー コードを使用するためです。33を印刷したい場合は、これを試すことができます:
System.out.println(String
.format("%c + %c", c, c));
それは単なるASCII値の合計です