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:
StringJoineris 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".
1Just 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()); 1A 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