java - 程序无法运行(maxMinArray)

标签 java arrays sorting

所以当我尝试执行大量输入时遇到问题。该程序的目标是打印出数组中的最小数字和最大数字。我的目标是输入 300 个数字,但我的终端拒绝接受这么高的数字。但是当我输入 100 个数字时,它工作得很好。有人可以解释一下当尝试处理大量输入时该程序出了什么问题,以及关于我可以做什么以使该程序运行的任何建议吗?

import java.util.Scanner;

class maxMinArray {
public static void main(String[] args) {

    int input = 3;
    int[] highLow = new int[input];
    int highest = 0;
    int lowest = 100000;

    Scanner scan = new Scanner(System.in);

    System.out.println("input data:");

    for (int i = 0; i < input; i++) {
        highLow[i] = scan.nextInt();
        if (highLow[i] > highest) highest = highLow[i];
        if (highLow[i] < lowest) lowest = highLow[i];
    }
    System.out.println("answer:");
    System.out.println(highest + " " + lowest);

}

}

最佳答案

首先在 low[i] = high[i] = scan.nextInt(); 之后添加 scan.nextLine()。在 scan.nextInt() 之后,Scanner 的缓冲区中仍然存在回车符/换行符,这将导致下次尝试读取时出错...

so i copy pasted 300 ints when it asked for the input data and as soon as i pasted it

这会改变事情,尝试一些更像......

String text = scan.nextLine();
Scanner parse = new Scanner(text);
int i = 0;
while (parse.hasNextInt()) {
    highLow[i] = parse.nextInt();
    if (highLow[i] > highest) {
        highest = highLow[i];
    }
    if (highLow[i] < lowest) {
        lowest = highLow[i];
    }
    i++;
}

已更新

更好的解决方案可能是将所有数字放入一个文本文件中并读取该文本文件......

try {
    Scanner parse = new Scanner(new File("Test.txt"));
    int i = 0;
    while (parse.hasNextInt()) {
        highLow[i] = parse.nextInt();
        if (highLow[i] > highest) {
            highest = highLow[i];
        }
        if (highLow[i] < lowest) {
            lowest = highLow[i];
        }
        i++;
    }
    System.out.println("answer:");
    System.out.println(highest + " " + lowest);
} catch (FileNotFoundException exp) {
    exp.printStackTrace();
}

您可以使用Scanner提示用户输入文本文件的名称,而不是对其进行硬编码

关于java - 程序无法运行(maxMinArray),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26794315/

相关文章:

java - Spring 中的服务器发送事件客户端示例

javascript - 从 twitch 获取 json API。当我不在线时出现 Uncaught TypeError 。 JSON 更改

java - 是否无法将 BigDecimal 值存储在一维数组中

MYSQL 在一列上随机显示按 2 列排序的所有条目

java - 使用自定义比较器在 Java 中创建 SortedMap

java - 为什么我尝试执行此 JDBC 查询时得到此 "SQLSyntaxErrorException: ORA-00933: SQL command not properly ended"?

java - Jtable 中的单元格样式

java - 列出 GWT 中页面/面板的所有小部件

ruby - 识别特定 CSV 输出中的重复项

arrays - 在对象数组中查找元素