トップに戻る

テキストファイルを読み込んでカンマ区切りで分解する

loadStrings で1行ずつ取り出し、split でカンマごとに分ける

処理の流れ(プログラム) loadStrings / split
String[] questions;
String[] currentQuestionData;

void setup() {
  size(800, 600);

  // ファイルを1行ずつ配列に読み込む
  questions = loadStrings("question.txt");

  for (int i = 0; i < questions.length; i++) {
    // 1行をそのまま表示
    println(questions[i]);

    // カンマ区切りで配列に分解
    currentQuestionData = split(questions[i], ',');
    println("----------------");
    println(currentQuestionData[0]);
    println(currentQuestionData[1]);
    println(currentQuestionData[2]);
    println(currentQuestionData[3]);
    println(currentQuestionData[4]);
    println(currentQuestionData[5]);
    println("----------------");
  }
}
question.txt と split の結果 String[]
question.txt 5 行

行をクリックすると、その行を split(line, ',') で分けた結果を下に表示します。

currentQuestionData = split(questions[0], ',')
コンソールの出力(println の結果) 未実行
「setup() を実行」を押すと、ここに全行ぶんの出力が表示されます。
押さえるポイント 配列・添字・列数
1

loadStrings("question.txt") は1行=1要素

ファイルの各行が String 配列 questions の1要素になります。questions.length が行数です。

2

split(行, ',') でカンマごとに分ける

1行の文字列をカンマで区切り、新しい String 配列にします。currentQuestionData[0][5] で各列を取り出せます。

3

列の順番は「問題文, 正解番号, 選択肢1〜4」

このデータは 6列です。列がずれると意味も変わるので、すべての行で同じ順番・同じ列数にそろえます。

4

添字は 0 から、範囲外に注意

6列なら使える添字は [0][5]。列が足りない行で [5] を読むとエラーになります。

Javaの学習用の教材ページです。