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?

4 Answers

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".

1

Just invoke builder.append(" ") at the location of your preference.

E.g.

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

...etc.

NB:

  • Using the fluent builder syntax here for convenience
  • You can also just append a space after each literal instead (save for the last one)

Cleaner way of doing it.

Create a class variable:

private static final String BLANK_SPACE=" "; 

Now in you StringBuilder code ,append it where required:

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

A space is only a string containing the single character space.

So you can append it exactly as appending any other string.

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

Remember also that the append method returns the StringBuilder so it is possible to join appends one after the other as follow

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

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like