In this article, we will show you a few StringJoiner examples to join String.

1. StringJoiner
1.1 Join String by a delimiter

StringJoiner sj = new StringJoiner(",");
sj.add("aaa");
sj.add("bbb");
sj.add("ccc");
String result = sj.toString(); //aaa,bbb,ccc
1.2 Join String by a delimiter and starting with a supplied prefix and ending with a supplied suffix.

StringJoiner sj = new StringJoiner("/", "prefix-", "-suffix");
sj.add("2016");
sj.add("02");
sj.add("26");
String result = sj.toString(); //prefix-2016/02/26-suffix

2. String.join
StringJoiner is used internally by static String.join().

2.1 Join String by a delimiter.

//2015-10-31
String result = String.join("-", "2015", "10", "31" );
2.2 Join a List by a delimiter.

List<String> list = Arrays.asList("java", "python", "nodejs", "ruby");
//java, python, nodejs, ruby
String result = String.join(", ", list);

3. Collectors.joining
Two Stream and Collectors.joining examples.

3.1 Join List<String> example.

List<String> list = Arrays.asList("java", "python", "nodejs", "ruby");

//java | python | nodejs | ruby
String result = list.stream().map(x -> x).collect(Collectors.joining(" | "));
3.2 Join List<Object> example.

void test(){

List<Game> list = Arrays.asList(
new Game("Dragon Blaze", 5),
new Game("Angry Bird", 5),
new Game("Candy Crush", 5)
);

//{Dragon Blaze, Angry Bird, Candy Crush}
String result = list.stream().map(x -> x.getName())
.collect(Collectors.joining(", ", "{", "}"));

}

class Game{
String name;
int ranking;

public Game(String name, int ranking) {
this.name = name;
this.ranking = ranking;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getRanking() {
return ranking;
}

public void setRanking(int ranking) {
this.ranking = ranking;
}
}

05-11 22:34