Search code examples
javastringstringbuilder

How to put spaces in a stringbuilder


Hello I have following method to display a promotion line when I comment a 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();
    }

But when I get it, I get watchonyoutube:mickeyendestomendedrol, which is without spaces. How do I get spaces in my Stringbuilder?


Solution

  • As of JDK 1.8, you can use a StringJoiner, which is more convenient in your case:

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

    This way, you will not need to add those spaces "manually".