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;
        }
    }
References
- Stream – Collectors.joining JavaDoc
- StringJoiner JavaDoc