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;
}
}
参考文献
JavaDoc]
リンク://タグ/java8/[java8]