2017-06-14 49 views
-1

我想從CSV文件中提取數值,但我無法編譯我的代碼。我不斷收到以下錯誤:不兼容的類型:意外的返回值。我對這一切都很陌生,所以我在排序所有這些時遇到了一些麻煩。任何幫助,你可以給予將不勝感激。我的代碼如下。不提取數值的方法

public void numberOfExporters(CSVParser parser, String exportItem) {  
    int exportnum = 0; 
    for (CSVRecord record: parser) { 
     String exports = record.get("Exports"); 
     if(exports.contains(exportItem) && (exportnum > 0)){ 
      exportnum++; 
     } 
     return exportnum; 
    } 
    System.out.println(exportnum); 
} 

public void tester3() { 
    FileResource fr = new FileResource(); 
    CSVParser parser = fr.getCSVParser(); 
    numberOfExporters(parser, "porkbellies"); 
} 
+0

當我Google的錯誤信息,我得到了大量的結果描述問題和解決方案。請解釋這些如何沒有任何幫助你。 – csmckelvey

+0

可能因爲我是新手,並且我像你一樣搜索並嘗試了其中一些選項,或者我做錯了或者不瞭解這個概念。如果你想幫忙,那就幫忙。不要吝嗇,並回應像你剛纔給出的居高臨下的問題。 – sheltk68

+0

你用Google搜索了一下,但沒有解釋任何一個,或者向我們展示了它的代碼?說「我是新人」不是理由。 – csmckelvey

回答

1

您在聲明方法無效

這意味着:它什麼都沒有返回。如果你想返回一個int值,用void替換void。

除此之外,你的方法的整個邏輯是有缺陷的 - 你需要在所有可以退出方法的路徑上返回語句,並且在循環從不輸入的情況下缺少返回值。

然後:當您嘗試時,您可能無法迭代該csv分析器對象。

真正的答案在這裏:退後一步,並閱讀書籍/教程。你的代碼充滿了基本的錯誤。意思 - 現在忘記做csv解析。相反,學習如何首先編寫簡單代碼。

+0

我想到了一個基於我在網上閱讀的文章,關於設置這個。我應該這樣設置: – sheltk68

+0

'public int numberOfExporters(CSVParser parser,int exportnum,String exportItem)' – sheltk68

+1

關鍵點:你不會學習如何通過閱讀一些博客條目來騎自行車...嚴重:你負擔過重。退後一步,先學習基礎知識。 – GhostCat

0

你宣佈你的方法是void,但你有一個return陳述。請刪除return聲明或將方法的簽名更改爲int

+0

好的,我改變了第一種方法,但不幸的是,它的編譯,但是當我知道有一個項目應該導致一個數字時,它給了我一個「找不到項目」的答案。 (CSVRecord記錄:解析器){ exportnum ++; System.out.println(exportnum);}如果(ExportRecord記錄:解析器){ String export = record.get(「Exports」); if(exports.contains(exportItem)&&(exportnum> 0) } else { System.out。println(「沒有項目找到」); }' – sheltk68

+1

順便說一句,感謝您的意見。您是該主題中唯一一位爲如何解決問題提供堅實意見的人。 – sheltk68