javaの文字列の足し算
オラクルのjava silverの最初のほうに出てくる可能性がある問題です。
String str1 = "Hello" + "World";
System.out.println(str1); // 実行結果→Hello World
String str2 = "1" + "2" + "3";
System.out.println(str2); // 実行結果→123
String str3 = 1 + 2 + "3";
System.out.println(str3); // 実行結果→33
String str4 = "1" + 2 + 3;
System.out.println(str4); // 実行結果→123
String str5 = "1" + (2 + 3);
System.out.println(str5); // 実行結果→15
基本は左からの足し算です。
文字列 + 文字列 = 文字列
数値 + 文字列 = 文字列
String str2 = “1” + “2” + “3”;は、文字列同士の足し算なので結果は123の文字列です。
String str3 = 1 + 2 + “3”;は、最初に数値の1+2が実行されます。
その後に数値の3と文字列の”3″が足し算されて、結果は33になります。
String str5 = “1” + (2 + 3);は、カッコが優先されますので、数値の(2+3)を先に行い、
文字列の”1″と数値の5を足すので、結果は15になります。
では、最後に少し長いもので考えてみましょう。
String str6 = 1 + 2 + 3 + "1" + 2 + 3 + "1" + 2;
System.out.println(str6);
よかったら実行結果を予想してみてください。
ここからは解説していきます。
覚えていてほしいことは
文字列 + 文字列 = 文字列
数値 + 文字列 = 文字列
です。
そして計算は基本左からだということです。
* ()の式が最優先。次にかけ算や割り算。そして足し算引き算。普通の計算と同じです。
では、順番に見てみましょう。
String str6 = 1 + 2 + 3 + “1” + 2 + 3 + “1” + 2;
左から順番に
数値の1+ 数値の2 = 数値の3
数値の3 + 数値の3 = 数値の6
数値の6 + 文字列の1 = 文字列の61
文字列の61 + 数値の2 = 文字列の612
文字列の612 + 数値の3 = 文字列の6123
文字列の6123 + 文字列の1 = 文字列の61231
文字列の61231 + 文字列の2 = 文字列の612312
実行結果は「612312」でした。
途中でややこしくなりますね。
文字列が混じるとそれ以降はくっつける作業になります。
数値 + 文字列 = 文字列
を忘れずに。
実際に試して遊んでみてください。
コメント