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