【JavaのScannerクラス】読み込み時の区切り文字を変更する方法

scannerクラスの区切り文字
  • このエントリーをはてなブックマークに追加
  • Pocket

Javaでキーボードやファイルから入力をするときには、Scannerクラスを使う。

このときに、区切りの文字を変えてインポートしたいということはよくある。例えば、csvファイルを一括で読み込みたいときなどだ。

このページでは、区切り文字を変更する方法についてお伝えしよう。

Scannerクラスの区切り文字

デフォルトは空白区切り

Scannerクラスでは読み取るときに区切り文字を指定することができる。

以下のプログラムを実行してみるとわかるが、デフォルトでは空白と改行で区切るようになっている。

 sampleAクラスを実行して、「あいうえお かきくけこ」と入力して、改行した場合の実行結果は以下のようになる。

この実行結果から区切り文字がデフォルトでは空白と改行になっていることがわかる。

もちろん、Scannerクラスではこの区切り文字を自由に変更することができる。 

区切り文字の変更

区切り文字を指定した以下のプログラムをみていこう。区切り文字には「,」と改行を指定するようにした。「,」で区切ることはCSVファイルなどでよく使われるので是非覚えておきたい。

区切り文字を指定するのは簡単だ。①のように Scannerクラスの「useDelimiter」メソッドを使い、区切り文字を指定するだけだ。 useDelimiterメソッドの使い方は簡単だが、指定する文字列については少し複雑だ。

一文字だけを指定する場合は単純に区切りたい文字を指定するだけなので、例えば「,」とだけ指定すればよいが、複数の文字を指定したい場合などは正規表現で書かなければならない。

正規表現は他にも色々な書き方があり、例えば「[a-z]」と書けばそれだけでaからzまでの文字を表していて、「[a-z]」を区切り文字に指定すればaからzの文字のどれを入力されても区切り文字として実行できる。

正規表現はプログラムではよく使う文字列マッチングの表記方法なので時間があるときに是非覚えたい。

今回区切り文字に指定したのは「,|¥n」で、この一文で「,」または改行を意味している。正規表現で「|」は、「〜または〜」の場合に使う。「¥n」は改行を意味する。

scanner.useDelimiter(",|¥n"); 

sampleBクラスを実行して、「あいうえお,かきくけこ」と入力して、改行した場合の実行結果は以下のようになる。

まとめ

このページでは、Scannerクラスでテキストなどのデータを読み込むときの区切り文字変更方法についてお伝えした。

CSVの読み込みなど、既存データのインポートなどに役立てていただければと思う。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リナックスアカデミーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リナックスアカデミーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する