Java datastracture arraylist字符串

Java datastracture arraylist字符串,java,arraylist,Java,Arraylist,我试图从数据列计算平均值 try { List<String>lines=Files.readAllLines(Paths.get("crimerate.csv")); for (String line:lines){ line=line.replace("\"",""); String []result=line.split(","); double sum=0; double num =0;

我试图从数据列计算平均值

try {

    List<String>lines=Files.readAllLines(Paths.get("crimerate.csv"));

    for (String line:lines){

        line=line.replace("\"","");
        String []result=line.split(",");

        double sum=0;
        double num =0;
        double close = Double.parseDouble(result[1]);
        sum+=close;
        num++;

        System.out.println(sum/num);

    }
} catch(Exception e){
    System.out.println(e.getMessage());
}

结果是输入字符串:“number”而不是16.5。有人能帮我吗?

将蓄能器移出回路;跳过第一行。我假设替换和拆分实际上是基于您的输入数据工作的。如果没有,则需要适当更新
行.split

try {
    List<String>lines=Files.readAllLines(Paths.get("crimerate.csv"));

    double sum = 0, num = 0; 
    for (String line:lines){
      //ignore first line
      if (num == 0) {
         ++num;
         continue;
      }

        line=line.replace("\"","");
        String []result=line.split(",");

        double close = Double.parseDouble(result[1]);
        sum+=close;
        num++;


        }// end of for-loop
         System.out.println(sum/num);
}catch(Exception e){
    System.out.println(e.getMessage());
}
试试看{
Listlines=Files.readAllLines(path.get(“crimerate.csv”);
双和=0,num=0;
用于(字符串行:行){
//忽略第一行
如果(num==0){
++num;
继续;
}
行=行。替换(“\”,“”);
String[]result=line.split(“,”);
double close=double.parseDouble(结果[1]);
总和+=闭合;
num++;
}//循环结束
系统输出打印项次(总和/项次);
}捕获(例外e){
System.out.println(e.getMessage());
}

您是否意识到每次都在重置循环中的变量?编辑后,是否丢弃第一行(该行不会通过
Double.parseDouble()
调用)。为什么要在显示的数据中都没有逗号的情况下替换引号和分隔符?@vishalgajera,你是对的;我不小心将
.println()
移到了try块之外。或者,更好的方法可能是同时使用声明和
.println()
在try块中。感谢您的编辑。@user6167014,很高兴它有帮助。我可以谦恭地请您查看以下链接:
try {
    List<String>lines=Files.readAllLines(Paths.get("crimerate.csv"));

    double sum = 0, num = 0; 
    for (String line:lines){
      //ignore first line
      if (num == 0) {
         ++num;
         continue;
      }

        line=line.replace("\"","");
        String []result=line.split(",");

        double close = Double.parseDouble(result[1]);
        sum+=close;
        num++;


        }// end of for-loop
         System.out.println(sum/num);
}catch(Exception e){
    System.out.println(e.getMessage());
}