SStringJoiner 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.
Prior to adding something to the StringJoiner, its sj.toString() method will, by default, return prefix + suffix. However, if the setEmptyValue method is called, the emptyValue supplied will be returned instead. This can be used, for example, when creating a string using set notation to indicate an empty set, i.e. "{}", where the prefix is "{", the suffix is "}" and nothing has been added to the StringJoiner.
import java.util.StringJoiner;
public class StringJoinerDemo {
public static void main(String[] args) {
String delimeter = "-";
StringJoiner names = new StringJoiner(delimeter);
names.add("Laulau");
names.add("Kinga");
names.add("Fusi");
System.out.println(names);
}
}
Result:
Laulau-Kinga-Fusi
Using prefix and suffix
public static void demoWithPrefixAndSuffix() {
String delimeter = ",";
String prefix = "(";
String suffix = ")";
StringJoiner names = new StringJoiner(delimeter, prefix, suffix);
names.add("Laulau");
names.add("Kinga");
names.add("Fusi");
System.out.println(names);
}
Result:
(Laulau,Kinga,Fusi)
Using merge
public static void demoWithMerge() {
String delimeter = ",";
String prefix = "(";
String suffix = ")";
StringJoiner names1 = new StringJoiner(delimeter, prefix, suffix);
names1.add("Laulau");
names1.add("Kinga");
names1.add("Fusi");
System.out.println(names1);
StringJoiner names2 = new StringJoiner(delimeter, prefix, suffix);
names2.add("John");
names2.add("Peter");
names2.add("Andrew");
System.out.println(names2);
StringJoiner names3 = names1.merge(names2);
System.out.println(names3);
}
Result:
(Laulau,Kinga,Fusi) (John,Peter,Andrew) (Laulau,Kinga,Fusi,John,Peter,Andrew)