2017-04-02 68 views
-3
public int getRank(int auxYear, String auxName){ 
     //FileResource auxFr = new FileResource("/testing/yob" + auxYear + "short.csv"); 
     String resourceName = "/Users/User/Desktop/coursera/week4_babybirths/babybirths/testing/yob" + auxYear + "short.csv"; 
     File auxFile = new File(resourceName); 
     if(auxFile.exists()){ 
     FileResource auxFr = new FileResource(auxFile); 
     //FileResource auxFr = new FileResource(); 
     int auxRank = 0; 
     for (CSVRecord auxRec : auxFr.getCSVParser(false)){ 
      if (auxRec.get(1).contains(auxGender)){ 
       auxRank += 1; 
       String auxN = auxRec.get(0); 
       if (auxRec.get(0).contains(auxName)){ 
        return auxRank; 
       } 
      } 
     }    
} 

的GetName方法是閱讀的CSV文件,而不是從第一行盯着,下面的代碼:爲什麼我的getName()方法不是從我的csv文件的第一行開始的?

public String getName(int auxYear, int auxRank, String auxGender){ 
    ////FileResource auxFr = new FileResource("/testing/yob" + auxYear + "short.csv"); 
     String resourceName = "/Users/User/Desktop/coursera/week4_babybirths/babybirths/testing/yob" + auxYear + "short.csv"; 
     File auxFile = new File(resourceName); 
     if (auxFile.exists()){ 
     FileResource auxFr = new FileResource(auxFile); 
     int auxCount = 0; 
     for (CSVRecord auxRec : auxFr.getCSVParser()){ 
      String auxStr = auxRec.get(0); 
      if (auxRec.get(1).contains(auxGender)){ 
       auxCount += 1; 
       String auxStr1 = auxRec.get(0); 
       if (auxCount == (auxRank-1)){ 
        return auxRec.get(0); 
       } 
      } 
     }    
    }                          

我還使用:

public String yourNameInYear(String auxName, int auxYear, int auxNewYear, String auxGender){ 
    int auxRank = getRank(auxYear, auxName, auxGender); 
    return getName(auxNewYear, auxRank, auxGender); 
} 

public void testYourNameInYear(){ 
    String auxName = yourNameInYear("Isabella", 2012, 2014, "F"); 
    System.out.println("Isabella" + " born in " + 2012 + " would be " + auxName + " in " + 2014); 
} 

默認YourNameInYear將調用getRank這一會打開yob2012short.csv,然後處理完後,getName將被調用並打開yob2014short.csv。我不知道爲什麼這個不是從第一排開始的?

+2

爲了記錄:還有其他人在這個完全m你放棄我們。嚴重的是:你認爲看編輯預覽然後點擊提交按鈕是什麼感覺? – GhostCat

+0

抱歉,我的第一次人類感謝你 – osk

+2

有一個編輯按鈕來改善你的問題。你最好打這個,並使用預覽和降價語言解釋。不要試圖快速思考,解決**混亂**。 – GhostCat

回答

0

嘗試使用此

 if (auxRec.get(1).contains(auxGender)){ 
      String auxStr1 = auxRec.get(0); 
      if (auxCount == (auxRank-1)){ 
       return auxRec.get(0); 
      } 
     auxCount += 1;  
     } 

我GESS auxCaunt一定是你current row所以如果你從01然後增加它,你做調用的getName與auxRank等於0(第一行可以是0不是1)所以0不等於1所以它會循環,直到auxRank等於2

+0

對不起,但是「僅限代碼」的答案的使用非常有限。請添加至少一些解釋。 – GhostCat

+0

@GhostCat解釋添加 –

相關問題