Java7 では、数字がカンマなどで区切られた文字列を split して List<Integer> にするのに、
こんなコードを書いていた。。。
String str = "1,2,,4,5";
List<Integer> list = new ArrayList<Integer>();
for(String s: str.split(",") ){
if ( ! "".equals(s) ){
list.add(Integer.parseInt(s));
}
}
Java8 なら、、いろいろ書き方あるかもしれないが、、Arrays.asList を使うなら、
List<Integer> list = Arrays.asList(str.split(",")).stream()
.filter(e->!"".equals(e))
.mapToInt(Integer::parseInt)
.collect(ArrayList<Integer>::new, (r, t)->r.add(t), (r, u)->r.addAll(u));
PatternのsplitAsStreamを使うなら、
List<Integer> list = Pattern.compile(",").splitAsStream(str).filter(e->!"".equals(e))
.mapToInt(Integer::parseInt)
.collect(ArrayList<Integer>::new, (r, t)->r.add(t), (r, u)->r.addAll(u));
こんなところだろうか。。if文の代わりに filter は必要だなあ。。