【问题标题】:while(br.readLine() != null)|Window application, javawhile(br.readLine() != null)|窗口应用程序,java
【发布时间】:2015-08-20 13:03:04
【问题描述】:
try {
                    PrintWriter out = new PrintWriter(new BufferedWriter( new FileWriter("D:\\LOL\\" + choice.getSelectedItem() + "\\KDA.txt", true)));
                    FileReader fr = new FileReader("D:\\LOL\\" + choice.getSelectedItem() + "\\KDA.txt");
                    BufferedReader br = new  BufferedReader(fr);

                    String suma ;
                    while(br.readLine() != null){
                        Integer.parseInt(suma);
                        suma = 0; //type mismatch: cannot convert from int to String
                        suma += Double.parseDouble(br.readLine());
                        textField_4.setText(suma);
                    }

                } catch (Exception e2) {

                }

我知道这个循环很糟糕,只需要创建一个循环,将文件中的所有数字相加,然后除以数字的数量。我的意思是当你有文件 D:\Lol\Plik\KDA.txt 并且有 4,0 2,3 12,7 4,3 (例如)我需要做一个循环:4,0 +2,3 +12,7+4,3/4 = suma textField_setText(suma); 通过使用缓冲阅读器

【问题讨论】:

  • suma == null,不是吗?

标签: java window bufferedreader filereader bufferedwriter


【解决方案1】:

我不知道您在搜索什么,但您没有 Integer.parseInt(suma); 的整数变量,然后您将 suma 设置为零。那是你要的吗?另外你解析一个空的suma-String。

这里是基于cmets的代码片段:

String input = br.readLine();
int sum = 0;
int all = 0;
while(input != null){
  sum += Double.parseDouble(su.replace(",", "."));
  all++;
  input = br.readLine();
}

System.out.println(sum/all);

【讨论】:

  • 我知道这个循环很糟糕,只需要创建一个循环,将文件中的所有数字相加,然后除以数字的数量。我的意思是当你有文件 D:\\Lol\\Plik\\KDA.txt 并且有 4,0 2,3 12,7 4,3 (例如)我需要做一个循环:4,0 + 2,3 +12,7+4,3/4 = suma textField_setText(suma);
  • 首先你必须知道它是一行还是不同行上的每个值。如果它只有一行,那么您只需要这一行并使用split(" ")-function 获取值,然后使用Double 而不是Integer 解析它。比您可以将所有已解析的 Doubles 收集到 array 中并执行循环来构建总和。在那之后sum/array.length()你得到了你的英雄联盟杀戮/死亡/助攻值
  • 每个值都在下一行。
  • 总和没有参数
  • 我不明白你的评论吗?你什么意思?
【解决方案2】:
while (br.readLine() != null)

停在那里。这已经无效了。你刚刚读了一行然后把它扔掉了。你需要写的是

while ((line = br.readLine()) != null)

然后在循环内处理line

您还在循环内调用readLine(),并且没有检查它是否为空。它不会给你同一行两次。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 2016-10-11
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    相关资源
    最近更新 更多