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

Leave a Reply

avatar
newest oldest most voted
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.

guest
Guest
guest

map(x -> x) is redundant

Hou Zhong
Guest
Hou Zhong

Good examples.