明確にするために、以下は完全に合法的なJavaです。
String fruit = " bananas";
int x = 99;
String newString = x + fruit; // "99 bananas"
左または右のオペランド式のタイプが;の場合、 diadic+
演算子は文字列連結です。JLS15.18を参照してください。String
この場合、以下は同等です。
String newString = "" + x + fruit;
イニシャル""
は、文字列の連結が関係していることを読者に明確にする一般的なイディオムです。(私には不格好に見えるので、個人的には使用しません。IMOは、演算子のJava優先順位規則を知らないプログラマーを支援するために冗長な括弧を追加するようなものです。Icck。)
上記の例では、""
は意味上の違いはありません。ただし、先頭""
が表現の意味を変える場合があります。例えば:
int x = 1;
String fruit = " bananas";
String newString = x + x + fruit; // "2 bananas"
String newString2 = "" + x + x + fruit; // "11 bananas".
(javac
コンパイラーはJLSによって文字列連結のシーケンスを積極的に最適化することを許可されているため、との見かけの連結は""
最適化されないことに注意してください。)