StringJoiner

StringJoiner

satzCalvin Blog
satzCalvin Blog

Java 8 – StringJoiner example

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 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 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;
            }
        }
        ........
    -satzCalvin..