私は文字列を持っています:
String ints = "1, 2, 3";
Intのリストに変換したいと思います。
List<Integer> intList
この方法で文字列のリストに変換できます:
List<String> list = Stream.of("1, 2, 3").collect(Collectors.toList());
しかし、intのリストではありません。
何か案は?
文字列を分割し、各部分からストリームを作成する必要があります。メソッド splitAsStream(input)
はまさにそれを行います:
Pattern pattern = Pattern.compile(", ");
List<Integer> list = pattern.splitAsStream(ints)
.map(Integer::valueOf)
.collect(Collectors.toList());
入力文字列の一部のStream<String>
を返します。これは後でInteger
にマップして、リストに収集できます。
パターンを定数に保存し、必要になるたびに再利用したい場合があることに注意してください。
正規表現の分割はあなたが探しているものです
Stream.of(ints.split(", "))
.map(Integer::parseInt)
.collect(Collectors.toList());
Array関数asListを使用して、Java8の方法で変換できます。
空白を削除することを忘れないでください。
List<Integer> erg = Arrays.asList(ints.replace(" ", "").split(",")).stream().map(Integer::parseInt).collect(Collectors.toList());
編集:申し訳ありませんが、私はそれが単一の文字列であることを見ていない、それは文字列の配列だと思った。