プログラミング

Java8でString配列をint配列に変換する簡単な方法

String配列をint配列に変換する

Java7

String[] str = {"1", "23", "456"};
int[] nums = new int(str.length);
for(int i = 0; i < str.length; i++) nums[i] = Integer.parseInt(str[i]);

多分こんな感じになると思います。なんかダサいですね。もっさりしてます。
ですが問題なく動作するはずです。

Java8

Streamを利用することで綺麗に記述できるようになりました。

String[] str = {"1", "23", "456"};
int[] nums = Stream.of(str).mapToInt(Integer::parseInt).toArray();

美しい…興奮しますね。
ちなみにScannerを利用して標準入力から受け取る場合も同様に綺麗に記述できます。
なお”1 23 456″みたいな感じで入力されてくるとします。

Scanner sc = new Scanner(System.in);
int[] nums = Stream.of(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
sc.close();

一行に入っている要素の個数がわからないときに使えそうです。

参考

teratail