Java 8 – StringJoiner example

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

  1. Stream – Collectors.joining JavaDoc
  2. StringJoiner JavaDoc

About the Author

author image
mkyong
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter, or befriend him on Facebook or Google Plus. If you like my tutorials, consider make a donation to these charities.

Comments

avatar
3 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
guestVV NAGESHSudarsana KasireddyHou Zhong Recent comment authors
newest oldest most voted
guest
Guest
guest

map(x -> x) is redundant

Sudarsana Kasireddy
Guest
Sudarsana Kasireddy

Hi Yong,
from example 3.1,
//java | python | nodejs | ruby
String result = list.stream().map(x -> x).collect(Collectors.joining(” | “));
Why are you using Map here?

VV NAGESH
Guest
VV NAGESH

It will work without map also. its just transformer.

Hou Zhong
Guest
Hou Zhong

Good examples.