java - 从java中的输入文本文件中查找最大值

标签 java

我试图获取用户输入的某个文本文件中的最大数量。我也将它放入单独的方法中。这是我到目前为止所拥有的:

public static void FindMax(String file)throws IOException{
 int maximum = 0;
 Scanner fileScanner = new Scanner(new File(file)); {  
            int big = fileScanner.nextInt();
            while (fileScanner.hasNextInt()) {
                int num = fileScanner.nextInt();
                if(num > big) {
                   maximum++;
                     System.out.println(num);;
                }
           }
  }
}
public static void main(String[] args)throws IOException{

    Scanner keyboard = new Scanner(System.in);
     String file;                                             

      System.out.print("Enter file: ");                  
       file = keyboard.nextLine();                            

       FindMax(file);

}

输出打印文本文件中除第一个值之外的所有内容,而不是打印最大值。例如,如果文本文件是:

1
2
3
4
5

它只打印2,3,4,5,我不知道为什么。我怎样才能得到最大值?我很感激任何帮助/建议。提前致谢。

编辑:你们所有人都在说类似的解决方案,但当我尝试它们时,它只是打印相同的输出。我很困惑。

最佳答案

您的代码实际上并没有找到最大值,而是打印出比它读入的第一个数字大的每个数字。请注意,您永远不会为big分配新值。此外,maximum 纯粹是跟踪大于 big(文件中的第一个数字)的数字。

这应该可以做到:

while (fileScanner.hasNextInt()) {
    int num = fileScanner.nextInt();
    if (num > big) 
       big = num;
}

关于java - 从java中的输入文本文件中查找最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43145075/

相关文章:

java - 将 JTextField 扩展到 InputStream 并从 Button 执行操作

java - 如何使用 Elasticsearch Java Api 使用 query_string 创建查询

java - Java Spark如何将JavaPairRDD <HashSet <String>,HashMap <String,Double >>保存到文件?

java - 抽屉布局问题

java - 初始化 Jersey reSTLet 设置的正确方法

java - 找不到符号[编译器错误]

java - 哪种设计模式适合可数对象?

java - 将序言应用程序转换为基于 JVM 的语言?

java - 由于 build.gradle Android Studio 中的错误,应用程序崩溃

java - 在没有 PowerMock 的情况下,在测试类之外的不同类中调用模拟方法