0

c: に ght.txt という名前の次のファイルがあり、次のデータが含まれています

Id|ytr|yts
1|W|T
2|W|T
3|W|T

ここで問題は、この列 (Id|ytr|yts) の位置も順番どおりではないということです。

Id|ytr|dgfj|fhfjk|fgrt|yts

または彼らはとしてすることができます..

Id|wer|ytr|weg|yts

ここで、Javaのバッファ付きライターを介してこのファイルを読み取る方法と、これらの列(Id | ytr | yts)のみをキャッチするロジックをアドバイスしてください。最初にこれらの列をキャッチしてから、列の値を地図。

お知らせ下さい

4

2 に答える 2

0

位置情報を提供する最初の行です。

String[] headers = firstLine.split("|");
int idIx, ytrIx, ytsIx, count = 0;
for(String header : headers) {
if(header.equals("Id")) {
  idIx = count;
}elseif (header.equals("ytr")) {
  ytrIx = count;
} elseif (header.equals("yts")) {
  ytsIx = count;
}
count++;
}

これらのインデックスがあるので、分割後の各行に対して、これらのインデックスを使用して目的の値を取得します。

注: を使用する場合Java7switch-case、ヘッダーを使用します。ヘッダーの数が多い場合はHashMap、ヘッダーとインデックスのマッピングにも使用できます。

于 2013-11-11T06:39:01.627 に答える
0

Commons CSVを使用し、パイプを区切り文字として指定してデータをロードすると、ヘッダー名に基づいてデータにアクセスできるようになり、自分で「切り替え」を行う必要がなくなります。

于 2013-11-11T12:34:22.843 に答える