2014-12-04 43 views
-1

我有這個任務,我需要使用來自文本文件的信息填充2d數組。我正在嘗試使用primekey變量來替換我暫時使用的poscon。什麼是從這樣做阻止我就是primekey不會增加正確的,因爲另一個變量總是停留在1

(主要問題)變量被卡住,這是emailcheck變量。我很確定它必須處理我的for循環語法,但我無法弄清楚。

 ... 

try{ 
    Scanner check = new Scanner(file); 
    Scanner checkNext = new Scanner(file);  

    System.out.println("Success File load"); 
    String data=check.next(); 
    System.out.println("data.next() works"); 

    int emailcheck=0; 
    int primekey=0; 

    while(check.hasNext()){ 
     posCon++; 
     //check for @ symbol 
     for(int i=0;i<data.length();i++){ 
      if(data.charAt(i)=='@'){ 
       emailcheck=emailcheck+1; 
      } 
     } 

     //populates position array 
     if(data.equalsIgnoreCase("staff")|| 
       data.equalsIgnoreCase("freshman")|| 
       data.equalsIgnoreCase("sohmore")|| 
       data.equalsIgnoreCase("junior")|| 
       data.equalsIgnoreCase("senior")|| 
       data.equalsIgnoreCase("adjunct")|| 
       data.equalsIgnoreCase("professor")) 
     { 
      db[0][posCon]=data; 
      sort=1; 
      data=check.next(); 

     } 
     //id 
     else if(sort==1){ 
      db[1][posCon]=data; 
      sort=2; 
      data=check.next(); 
     } 
     //firstname 
     else if(sort==2){ 
      db[2][posCon]=data; 
      sort=3; 
      data=check.next(); 
     } 
     //lastname 
     else if(sort==3){ 
      db[3][posCon]=data; 
      sort=4; 
      data=check.next(); 
     } 
     //department 
     else if(sort==4){ 
      db[4][posCon]=data; 
      sort=5; 
      data=check.next(); 
     } 
     //email 
     else if(sort==5 && emailcheck==1){ 
      db[5][posCon]=data; 
      sort=6; 
      emailcheck=0; 
     } 
     else if(sort==5 && emailcheck==0){ 
      db[5][posCon]="not here"; 
      sort=6; 
     } 
     //room 
     else if(sort==6){ 
      db[6][posCon]=data; 
      sort=0; 
      data=check.next(); 
      emailcheck=0; 
      primekey=primekey+1; 
      System.out.println(primekey); 
     } 
     else{ 
      sort=0; 
      data=check.next(); 
      emailcheck=0; 
     } 

    } 
}catch(FileNotFoundException e) { 
    e.printStackTrace(); 
} 
}//End Constructor 

這裏是從文本文件

Staff 77778 Julie Chang Registrar 
Adjunct 19778 Mike Thompson CS [email protected] GITC2400 
Staff 30041 Anne Mathews Security 
Junior 98444 Serene Murray Math [email protected] 
Freshman 98772 Bob Mathew CS [email protected] 
Professor 19010 Joan Berry Math [email protected] GITC2315C 
Professor 19871 Aparna Khat CS [email protected] GITC1400 
Adjunct 18821 Hari Mentor Physics [email protected] CK231 
Staff 20112 Jim George Plant 
Junior 68339 Tom Harry CS [email protected] 
Senior 78883 Vince Charles IT [email protected] 
Freshman 87777 Susan Han EE [email protected] 
Senior 88888 Janki Khat IE [email protected] 
Staff 5555 Aparna Sen Plant 
Senior 66663 Jill Kaley it [email protected] 
Staff 77777 Joe Batra plumbing 
Staff 33333 Jim Natale Plumbing 
+2

我建議您正確縮進代碼。那麼問題可能會變得更加清晰。 – aioobe 2014-12-04 08:51:34

+0

您的'primekey'只會在'sort == 6'的情況下遞增,但您在哪裏設置此var? – Eypros 2014-12-04 08:59:15

+0

emailcheck應包含哪些內容?什麼時候應該是0,什麼時候是1? – Eran 2014-12-04 08:59:24

回答

1

數據你在錯誤的地點數據= check.next()調用它應該只是用隨取環後開始。 hasNext()測試,而不是其他地方。你只需要一個Scanner實例,你聲明的第二個實例是多餘的。