246

Java での文字列の作成は、私を混乱させます。私は次のようなことを嫌います:

url += "u1=" + u1 + ";u2=" + u2 + ";u3=" + u3 + ";u4=" + u4 + ";";
url += "x=" + u1 + ";y=" + u2 + ";z=" + u3 + ";da1=" + u4 + ";";
url += "qty=1;cost=" + orderTotal + ";ord=" + orderId + "?";

または、StringBuilder を使用すると、次のようになります。

    url.append("u1=");
    url.append(u1);
    url.append(";u2=");
    url.append(u2);
    url.append(";u3=");
    url.append(u3);
    url.append(";u4=");
    url.append(u4);
    url.append(";");
    url.append("x=");
    url.append(u1);
    url.append(";y=");
    url.append(u2);
    url.append(";z=");
    url.append(u3);
    url.append(";da1=");
    url.append(u4);
    url.append(";");
    url.append("qty=1;");
    url.append("cost=");
    url.append(orderTotal);
    url.append(";ord=");
    url.append(orderId);
    url.append("?");

確かに私は何かが欠けています。もっと良い方法があるはずです。何かのようなもの:

それ以外の:

urlString += "u1=" + u1 + ";u2=" + u2 + ";u3=" + u3 + ";u4=" + u4 + ";";

行う:

urlString += Interpolator("u1=%s;u2=%s;u3=%s;u4=%s;", u1, u2, u3, u4);

また:

urlStringBuilder.append(Interpolator("u1=%s;u2=%s;u3=%s;u4=%s;", u1, u2, u3, u4));
4

5 に答える 5

387

Java 5 以降を使用している場合は、次を使用できますString.format

urlString += String.format("u1=%s;u2=%s;u3=%s;u4=%s;", u1, u2, u3, u4);

詳細Formatterについては、を参照してください。

于 2011-06-17T18:01:48.787 に答える
42

数値引数インデックスを持つ利点を持つjava.text.MessageFormatもあると付け加えるだけです。

ドキュメントから最初の例を追加する

int planet = 7;
String event = "a disturbance in the Force";

String result = MessageFormat.format(
    "At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.",
    planet, new Date(), event);

結果:

At 12:30 PM on Jul 3, 2053, there was a disturbance in the Force on planet 7.
于 2016-04-08T11:31:41.170 に答える
20

String.format()救助へ!!

于 2011-06-17T18:02:15.093 に答える