数値の加算と文字列の結合について
以下を実行した結果はどうなるだろうか。
/* ケース1 */ System.out.println(1 + 2);
結果は "3" と即答できる。
では、以下を実行した結果はどうなるだろうか。
/* ケース2 */ System.out.println(1 + 2 + "hoge");
結果は、"3hoge" である。
次に、以下を実行した結果はどうなるだろうか。
/* ケース3 */ System.out.println(1 + 2 + "hoge" + 3 + 4);
結果は、"3hoge7" ではなく、"3hoge34" である。
以上から、"+" を使った演算に関して以下の法則を見出すことが出来る。
ケース3 にて "3hoge7" と表示させたい場合は、以下のよう優先して演算させたい箇所を () で囲む。
/* ケース4 */ System.out.println(1 + 2 + "hoge" + (3 + 4));
ケース2 にて "12hoge" と表示させたい場合は、少し卑怯くさいが以下のようにすればよい。
/* ケース5 */ System.out.println("" + 1 + 2 + "hoge");
素直に StringBuilder 使えって話ですね。