0

newString""の値を取得するには99 bottles

int x = 99;
String fruit = " bottles";

新しい文字列を作成するには、次のようにします。

String newString = "" + x + fruit;

これは許可されていないため:

String newString = x + fruit;

しかし、ここで二重引用符を使用することについては、正しくないように思われることがあります。

(を使用せずに)これを行うためのより良い方法はあり"" + xますか?

4

6 に答える 6

5

明確にするために、以下は完全に合法的な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によって文字列連結のシーケンスを積極的に最適化することを許可されているため、との見かけの連結は""最適化されないことに注意してください。)

于 2010-10-30T23:49:02.023 に答える
4

1つの選択肢はString#format()関数です。次のように使用します。

final String newString = String.format("%d bottles", x);

別の選択肢はInteger#toString()

final String newString = Integer.toString(x) + " bottles";
于 2010-10-30T23:07:19.640 に答える
2

Integer.toString()を使用します。

int x = 99;
String fruit = " bottles";
String newString = Integer.toString(x) + fruit;

Float.toString(float val)、Double.toString(double val)、およびLong.toString(long val)もあります。個人的には、連結を行うときに「」を使用するのは好きではありません。より良い言葉がないので、それはずさんな感じだと思います。

于 2010-10-31T01:11:01.250 に答える
1

私は試した:

int x = 99;
String fruit = " bottles";
String newString = x + fruit;
System.out.println(newString);

Eclipseで動作しますが、上記が動作しない場合、StringにはvalueOf()メソッドがあります。

String newString = String.valueOf(x) + fruit;

ただし、動靜能量が述べているように、実際には「」の方が一般的です。

于 2010-10-30T23:07:52.787 に答える
1
String newString = x + fruit;

Javaで許可されています。

それを行う別の方法は次のとおりです。

String newString = String.format("%d bottles", x);
于 2010-10-30T23:10:12.540 に答える
0

使用法

String newString = "" + x + fruit;

人々があなたが何をしているのかを知っているほど一般的です。一部の言語では、次のことができます

$str = 3 . 'foo';   # in PHP

そして、いくつかの言語では、あなたはすることができます

str = "#{x} foo"   # in Ruby

どちらもより自然に見えます。

于 2010-10-30T23:01:06.493 に答える