web-dev-qa-db-ja.com

文字列ビルダーにスペースを配置する方法

こんにちは私は一言コメントボックスにコメントするときにプロモーション行を表示する次のメソッドがあります。

public String getShoutboxUnderline(){
        StringBuilder builder = new StringBuilder();
        builder.append("watch");
        builder.append("on");
        builder.append("youtube");
        builder.append(":");
        builder.append("Mickey");
        builder.append("en");
        builder.append("de");
        builder.append("stomende");
        builder.append("drol");

        return builder.toString();
    }

しかし、それを取得すると、スペースのないwatchonyoutube:mickeyendestomendedrolが表示されます。 Stringbuilderでスペースを取得するにはどうすればよいですか?

9
KeinHappyAuer

JDK 1.8以降では、 StringJoiner を使用できます。これは、ケースでより便利です。

StringJoinerは、区切り文字およびで区切られた文字シーケンスを作成するために使用されます指定されたプレフィックスで始まり、指定されたサフィックスで終了します。

StringJoiner joiner = new StringJoiner(" "); // Use 'space' as the delimiter
joiner.add("watch") // watch 
      .add("on") // watch on 
      .add("youtube") // watch on youtube
      .add(":") // etc...
      .add("Mickey")
      .add("en")
      .add("de")
      .add("stomende")
      .add("drol");

return joiner.toString();

この方法では、これらのスペースを「手動で」追加する必要はありません。

31

好みの場所でbuilder.append(" ")を呼び出すだけです。

例えば。

builder
    .append("watch")
    .append(" ")
    .append("on")

...等。

注意:

  • 便宜上、ここではFluent Builder構文を使用します
  • 代わりに、各リテラルの後にスペースを追加することもできます(最後のリテラルのために保存します)
5
Mena

それを行うためのよりクリーンな方法。

クラス変数を作成します。

private static final String BLANK_SPACE=" ";

StringBuilderコードで、必要な場所に追加します。

StringBuilder builder = new StringBuilder();
    builder.append("watch");
    builder.append(BLANK_SPACE);
    builder.append("on");
    builder.append("youtube");
    builder.append(":");
    builder.append(BLANK_SPACE);
    builder.append("Mickey");
    builder.append("en");
    builder.append("de");
    builder.append(BLANK_SPACE);
    builder.append("stomende");
    builder.append("drol");
    System.out.println(builder.toString());
2
abdulrafique

スペースはのみ単一を含む文字列文字スペース

したがって、他の文字列を追加するのとまったく同じように追加できます。

    StringBuilder builder = new StringBuilder();
    builder.append("watch");
    builder.append(" ");
    builder.append("on");
    builder.append(" "); 
    // and so on

また、appendメソッドはStringBuilderを返すため、次のようにして追加を次々に結合することができます。

    StringBuilder builder = new StringBuilder();
    builder.append("watch").append(" ");
    builder.append("on").append(" "); 
    // and so on