2017-06-14 47 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