開発者ドキュメント

Java 8 – StringJoinerの例

この記事では、Stringを結合するためのいくつかの `StringJoiner`の例を示します。

1. StringJoiner

1.1デリミタによる文字列の結合

    StringJoiner sj = new StringJoiner(",");
        sj.add("aaa");
        sj.add("bbb");
        sj.add("ccc");
        String result = sj.toString();//aaa,bbb,ccc

1.2デリミタで文字列を結合し、指定された接頭辞で始まり、指定された接尾辞で終わる。

    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は、静的な `String.join()`によって内部的に使用されます。

2.1区切り文字で文字列を結合する。

   //2015-10-31
    String result = String.join("-", "2015", "10", "31" );

2.2区切り文字でリストに参加する。

    List<String> list = Arrays.asList("java", "python", "nodejs", "ruby");
   //java, python, nodejs, ruby
    String result = String.join(", ", list);

3.コレクター. 参加

2つの

Stream`と

Collectors.joining`の例です。

3.1 List <String>の例を結合します。

    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結合リスト `<Object>`の例

    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;
        }
    }
モバイルバージョンを終了