【Java】String型の配列をInt型に変える

<!-- タイトルを記述 -->
# String型の配列をInt型に変える

<!--  記事全体の内容の一言まとめ -->
## 一言まとめ
Java8以降では、Stream APIを使って一行でできる。

```
//Stream APIのインポート
import java.util.stream.Stream;

//String型配列 を int型配列 に変換
int[] int型の配列名 = Stream.of(整数型の配列名).mapToInt(Integer::parseInt).toArray();
```

<!--  上記の詳しい説明 -->
## 【説明】

流れとしては

1. Stream APIを[インポート]
2. 文字列型の[配列]を作成
3. String型配列 を int型配列 に変換

<!-- メリット「使うことのメリット」 -->
## 【メリット】
Java7までの場合は「for文で要素を一つずつ数値型に変換していく」といった書き方だったらしいのですが、Java8からAPIでかなりスッキリ書くことができるようになったらしい。

```java
// java7までの書き方
for (int i = 0; i < sa.length; i++) {
    ia[i] = Integer.parseInt(sa[i]);
}
```

<!-- 使用場面 「いつつかうか？」「どこで、つかうか？」-->
## 【使用場面】
体感paizaの問題を解く際は、かなり頻出する操作だと感じました。例えば以下のようなパターンで私はつまりました。

1. scanner で「100,200,300」のように区切って入力
2. 入力の内容を一度 文字列の配列 として分割する
3. 2 をint型の配列 に変換して計算をおこなう

といった感じでした。
以下にその例のサンプルコードを載せておきます。

<!-- ここから 各キャプチャー↓↓↓↓↓↓↓↓↓↓↓↓↓↓ -->
<!-- サンプルコード、サブセクションを記述↓↓↓↓↓ -->
<!-- ここから サンプルコード ★☆★☆★☆★☆★ -->
<!-- サンプルコードタイトル -->
## 【サンプルコード】 「scannerで打ち込まれた文字列の配列を数値型に変換」

<!-- サンプルコード -->

### 【Main.java】

```java
// scannerのインポート
import java.util.Scanner;
//Stream APIのインポート
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        // scannerのインスタンス化
        Scanner sc = new Scanner(System.in);

        // 空白区切りに文字型で要素ごとに配列に分割
        String[] stringArray = sc.nextLine().split(" ");
        // String型配列 を int型配列 に変換
        int[] intArray = Stream.of(stringArray).mapToInt(Integer::parseInt).toArray();

//【START】配列の中身を全部出力する ==============
//        for (int i = 0; i < intArray.length; i++) {
//            int j = intArray[i];
//            System.out.println(j);
//        }
//【 END 】配列の中身を全部出力する ==============

// 【START】配列内の値をすべて足す =============
//        int sum = 0;
//        for (int i = 0; i < intArray.length; i++) {
//            sum += intArray[i];
//            System.out.println(sum);
//        }
// 【 END 】配列内の値をすべて足す ==============

    }
}
```

こちらのコード内コメントアウトでint化した[配列]をつかって色々出力してみました。

<!-- 実行結果 -->
### [配列]の中身を全部出力する
[ 拡張for文]を用いて配列内の要素をすべて出力します
こちらのコメントアウトを開放してください。

```java
//【START】配列の中身を全部出力する ==============
        for (int i : intArray) {
            System.out.println(i);
        }
//【 END 】配列の中身を全部出力する ==============
```

ターミナルに以下を入力する

```
100 200 300
```

### 【実行結果】

```
100
200
300
```

### [配列]内の値をすべて足す


こちらのコメントアウトを開放してください。

```java
// 【START】配列内の値をすべて足す =============
        int sum = 0;
        for (int i = 0; i < intArray.length; i++) {
            sum += intArray[i];
            System.out.println(sum);
        }
// 【 END 】配列内の値をすべて足す ==============
```

ターミナルに以下を入力する

```
100 200 300
```

### 【実行結果】

```
100
300
600
```

<!-- サンプルコード説明があればここに記述 -->


<!-- ここまで サンプルコード ★☆★☆★☆★☆★ -->



<!-- サンプルコードや、サブセクションを記述↑↑↑↑↑ -->
<!-- ここまで 各キャプチャー↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ -->


## 【まとめ】

paiza問題を解くには今だとラムダ式とか、Listとか使うのが必須になるのかなーと思いますが、今後も更新していきます。

## 参考文献・記事

- [インタフェースIntStream
](https://docs.oracle.com/javase/jp/8/docs/api/java/util/stream/IntStream.html)

<!-- 以下ショートリンク↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ -->
[Progate]:https://prog-8.com/
[ドットインストール]:https://dotinstall.com/

<!-- A -->
[abstract修飾子]:https://qiita.com/takahirocook/items/9fa0e1cbb8a4dd4e1ff4
[abstract]:https://qiita.com/takahirocook/items/9fa0e1cbb8a4dd4e1ff4
<!-- B -->
<!-- C -->
[Calendar]:https://qiita.com/takahirocook/items/204dd7331db777eb6f3b
<!-- D -->
[Date]:https://qiita.com/takahirocook/items/a760e20ef2d9aa5c08fc
<!-- E -->
<!-- F -->
[final]:https://qiita.com/takahirocook/items/5e0916d9bf28bcf68d0c
[final修飾子]:https://qiita.com/takahirocook/items/5e0916d9bf28bcf68d0c
<!-- G -->
[getter・setter]:https://qiita.com/takahirocook/items/27828bc8477735612021
[getter]:https://qiita.com/takahirocook/items/27828bc8477735612021
[GET]:https://qiita.com/takahirocook/items/8080a478439f6043b2c1
[GETメソッド]:https://qiita.com/takahirocook/items/8080a478439f6043b2c1
[getParameter()]:https://qiita.com/takahirocook/items/8080a478439f6043b2c1
[getParameter]:https://qiita.com/takahirocook/items/8080a478439f6043b2c1
[getParameterメソッド]:(https://qiita.com/takahirocook/items/8080a478439f6043b2c1)
[getParameterValues]:https://qiita.com/takahirocook/items/7a071493ae73cc4749e1
[getParameterValuesメソッド]:https://qiita.com/takahirocook/items/7a071493ae73cc4749e1
<!-- H -->
<!-- I -->
[import]:https://qiita.com/takahirocook/items/59a8a09cab6a98d3bca2
<!-- J -->
[JDBC]:https://qiita.com/takahirocook/items/064b591cffa4221144ed
<!-- K -->
<!-- L -->
[List]:https://qiita.com/takahirocook/items/4d622fc6f271569783b5
[length]:https://qiita.com/takahirocook/items/16a123fb73b30869053b
[list]:https://qiita.com/takahirocook/items/4d622fc6f271569783b5
<!-- M -->
[Map]:https://qiita.com/takahirocook/items/49f46151ecb5e332db32
[map]:https://qiita.com/takahirocook/items/49f46151ecb5e332db32
[mainメソッド]:https://qiita.com/takahirocook/items/f4635915337303de338c
<!-- N -->
[new演算子]:https://qiita.com/takahirocook/items/00f9f97592bf50831d39
[new]:https://qiita.com/takahirocook/items/00f9f97592bf50831d39
<!-- O -->
<!-- P -->
[printf()メソッド]:https://qiita.com/takahirocook/items/06d525be63eccd99ed49
[printf()関数]:https://qiita.com/takahirocook/items/06d525be63eccd99ed49
[POST]:https://qiita.com/takahirocook/items/7a071493ae73cc4749e1
[POSTメソッド]:https://qiita.com/takahirocook/items/7a071493ae73cc4749e1
<!-- Q -->
<!-- R -->
<!-- S -->
[static修飾子]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[static]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[setter]:https://qiita.com/takahirocook/items/27828bc8477735612021
[SimpleDateFormat]:https://qiita.com/takahirocook/items/aa857c8f2153193095e4
[set]:https://qiita.com/takahirocook/items/d498329cd26e1500f476
[Set]:https://qiita.com/takahirocook/items/d498329cd26e1500f476
[super]:https://qiita.com/takahirocook/items/75a07131e7e791c8442c
<!-- T -->
[this]:https://qiita.com/takahirocook/items/d251ec4693c68f6b9538
[Time]:https://qiita.com/takahirocook/items/9caef0bb2409caedba55
[this]:https://qiita.com/takahirocook/items/d251ec4693c68f6b9538
[web.xml]:https://qiita.com/takahirocook/items/d41a92bd36807d456f82
<!-- U -->
<!-- V -->
<!-- W -->
<!-- X -->
<!-- Y -->
<!-- Z -->

<!-- あ行 -->
[オブジェクト指向]:https://qiita.com/takahirocook/items/041ba7a096b71ab8ffd4
[継承]:https://qiita.com/takahirocook/items/6c84ea66a6e2ad536a37
[オーバーライド]:https://qiita.com/takahirocook/items/09dd8e5f56d6617ce45a
[オーバーロード]:https://qiita.com/takahirocook/items/b937c3c07126fe7e02a4
[インスタンス]:https://qiita.com/takahirocook/items/ec01cdcbb440cf0d1cc4
[インスタンス化]:https://qiita.com/takahirocook/items/ec01cdcbb440cf0d1cc4
[アクセス修飾子]:https://qiita.com/takahirocook/items/e51b0b9d37d95ad587fe
[インスタンス化]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[インスタンス変数]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[インターフェイス]:https://qiita.com/takahirocook/items/ca84be8dfef664b19194
[インターフェース]:https://qiita.com/takahirocook/items/ca84be8dfef664b19194
[インポート]:https://qiita.com/takahirocook/items/59a8a09cab6a98d3bca2
[インデックス]:https://qiita.com/takahirocook/items/16a123fb73b30869053b
<!-- か行 -->
[拡張for文]:https://qiita.com/takahirocook/items/470b2858de1a4f99b334
[クラスメソッド]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[クラスフィールド]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[クラス変数]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[カプセル化]:https://qiita.com/takahirocook/items/e469a7c0539a0012868e
[クラス]:https://qiita.com/takahirocook/items/50cbbdca8e21539170e9
[コンストラクタ]:https://qiita.com/takahirocook/items/fa1822f2f22c3786593e
<!-- さ行 -->
[サーブレット]:https://qiita.com/takahirocook/items/1ee780d68fd859e43daf
[書式指定子]:https://qiita.com/takahirocook/items/06d525be63eccd99ed49
[静的メソッド]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[静的変数]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[静的メソッド]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
[スーパークラス]:https://qiita.com/takahirocook/items/75a07131e7e791c8442c
<!-- た行 -->
[定数]:https://qiita.com/takahirocook/items/5e0916d9bf28bcf68d0c
[抽象クラス]:https://qiita.com/takahirocook/items/9fa0e1cbb8a4dd4e1ff4
[抽象メソッド]:https://qiita.com/takahirocook/items/9fa0e1cbb8a4dd4e1ff4
[動的メソッド]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
<!-- な行 -->
[日時の文字列操作]:https://qiita.com/takahirocook/items/aa857c8f2153193095e4

<!-- は行 -->
[パッケージ]:https://qiita.com/takahirocook/items/39b58d17abcb159ef5c1
[引数]:https://qiita.com/takahirocook/items/5e5b0ba79e869f4a592e
[配列]:https://qiita.com/takahirocook/items/16a123fb73b30869053b
[配列操作]:https://qiita.com/takahirocook/items/16a123fb73b30869053b
[日付操作]:https://qiita.com/takahirocook/items/9caef0bb2409caedba55
[フィールド]:https://qiita.com/takahirocook/items/28df75a133049a74ece1
[フィールド変数]:https://qiita.com/takahirocook/items/28df75a133049a74ece1
[インスタンスフィールド]:https://qiita.com/takahirocook/items/cf527f85d17a5af86735
<!-- ま行 -->
[戻り値]:https://qiita.com/takahirocook/items/3b6fa670a1d6dd4a9386
[メソッド]:https://qiita.com/takahirocook/items/5bfe43576d87a2a4006c
[メソッドの呼び出し]:https://qiita.com/takahirocook/items/f4635915337303de338c
<!-- や行 -->
<!-- ら行 -->
<!-- わ行 -->