如何在 stringbuilder 中放置空格

How to put spaces in a stringbuilder

您好,我有以下方法可以在评论留言箱时显示促销线:

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 中获取空格?

只需在您喜欢的位置调用 builder.append(" ")

例如

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

...等等

注意:

  • 为方便起见,此处使用流畅的构建器语法
  • 您也可以只在每个文字后附加一个 space(保留最后一个)

从 JDK 1.8 开始,您可以使用 StringJoiner,这在您的情况下更方便:

StringJoiner is used to construct a sequence of characters separated by a delimiter and optionally starting with a supplied prefix and ending with a supplied suffix.

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

这样,您将不需要添加这些空格 "manually"。

更简洁的方式。

创建一个class变量:

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

一个space只是一个包含单个字符的字符串space.

因此您可以像附加任何其他字符串一样附加它。

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

还请记住 StringBuilder 的追加方法 returns 因此可以按照以下方式一个接一个地连接追加

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