私のプログラムはファイルを1行ずつ読み込み、区切り文字で区切ります。 (縦線)、String []に格納されます。ただし、具体的なインデックス番号0,1,2,3 ...を使用するのではなく、行の列の位置と列の数が将来変更されるため、インデックス分割を使用するためにインデックス++を使用します。変数インクリメント(インデックス++)は毎回1増加しません
プログラムを実行した後、増加1ではなく、毎回インデックスが1より大きくなります。次のように
私のコードは次のようである:ファイル形式は以下のとおりであるように
BufferedReader br = null;
String line = null;
String[] lineTokens = null;
int index = 1;
DataModel dataModel = new DataModel();
try {
br = new BufferedReader(new FileReader(filePath));
while((line = br.readLine()) != null) {
// check Group C only
if(line.contains("CCC")) {
lineTokens = line.split("\\|");
dataModel.setGroupID(lineTokens[index++]);
//System.out.println(index); The value of index not equal to 2 here. The value change each running time
dataModel.setGroupName(lineTokens[index++]);
//System.out.println(index);
// dataModel.setOthers(lineTokens[index++]); <- if the file add columns in the middle of the line in the future, this is required.
dataModel.setMemberID(lineTokens[index++]);
dataModel.setMemberName(lineTokens[index++]);
dataModel.setXXX(lineTokens[index++]);
dataModel.setYYY(lineTokens[index++]);
index = 1;
//blah blah below
}
}
br.close();
} catch (Exception ex) {
}
:
Prefix | Group ID | Group Name | Memeber ID | Member Name | XXX | YYY GroupInterface | AAA | Group A | 001 | Amy | XXX | YYY GroupInterface | BBB | Group B | 002 | Tom | XXX | YYY GroupInterface | AAA | Group A | 003 | Peter | XXX | YYY GroupInterface | CCC | Group C | 004 | Sam | XXX | YYY GroupInterface | CCC | Group C | 005 | Susan | XXX | YYY GroupInterface | DDD | Group D | 006 | Parker| XXX | YYY
代わりの増加1を、インデックスが++以上の1が増加します、私はなぜこれを疑問に思います起こって、どのようにそれを解決するのですか?どんな助けも高く評価されます。
* "インデックス++は1より大きくなります" *、そうでないでしょう。 'index ++'が壊れている可能性は非常に低いです。 – Tom
'0'で' index'を始めるべきではありませんか? –
デバッガで実行していますか? – Jens