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

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

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

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

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*