Как поместить пробелы в stringbuilder

Привет у меня есть следующий метод для отображения строки продвижения, когда я комментирую shoutbox:

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?

4 ответов


С 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();

таким образом, вам не нужно будет добавлять эти пробелы "вручную".


просто вызвать builder.append(" ") в месте вашего предпочтения.

Э. Г.

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

...так далее.

NB:

  • использование синтаксиса fluent builder здесь для удобства
  • вы также можете просто добавить пробел после каждого литерала (за исключением последнего)

более чистый способ сделать это.

создайте переменную класса:

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());

пробел только строка, содержащая один символ пробел.

таким образом, вы можете добавить его точно так же, как добавление любой другой строки.

    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