2017-05-29 9 views
-3

私のプログラムはファイルを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

* "インデックス++は1より大きくなります" *、そうでないでしょう。 'index ++'が壊れている可能性は非常に低いです。 – Tom

+2

'0'で' index'を始めるべきではありませんか? –

+0

デバッガで実行していますか? – Jens

答えて

0

まあ、@SomeProgrammerDudeはこっそりそれをほのめかしたが、私はちょうど出てくるし、それを言うだろう:1でindexを開始することにより、ゼロではない1.

をあなたはindexをリセットしたときに、それはに設定する必要があり、あなたあなたはどこにいても常に先に1つのポジションのインデックスを作成していて、おそらくIndexOutOfBoundsExceptionが空のcatch節で飲み込まれている可能性があります。

関連する問題