Quantcast
Channel: 配列タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 834

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

$
0
0

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でかなりスッキリ書くことができるようになったらしい。

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

【使用場面】

体感paizaの問題を解く際は、かなり頻出する操作だと感じました。例えば以下のようなパターンで私はつまりました。

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

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

【サンプルコード】 「scannerで打ち込まれた文字列の配列を数値型に変換」

【Main.java】

// scannerのインポートimportjava.util.Scanner;//Stream APIのインポートimportjava.util.stream.Stream;publicclassMain{publicstaticvoidmain(String[]args){// scannerのインスタンス化Scannersc=newScanner(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文]を用いて配列内の要素をすべて出力します
こちらのコメントアウトを開放してください。

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

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

100 200 300

【実行結果】

100
200
300

配列内の値をすべて足す

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

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

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

100 200 300

【実行結果】

100
300
600

【まとめ】

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

参考文献・記事


Viewing all articles
Browse latest Browse all 834

Trending Articles