java - 并行数组和从文件读取整数/ double 的问题

标签 java arrays arraylist java.util.scanner

我在并行数组和让程序读取整数和 double 方面遇到问题。例如,我有一个包含以下值的文本文件:

1234 99.58

5678 1854.99

第一个数字是帐号,第二个数字是帐户余额。我不知道如何将它们放入并行数组(int[] accountnumber,double[] Balance),同时查看理想情况下 10 个以上帐户和余额的列表。

我尝试过单独填充数组,但没有成功,这感觉不是最有效的方法。我尝试分解“(int = 0; i < maxAccts; i++)”,这样我就可以使用“i”变量而无需重置它。

    public static int readAccts(int[] acctNum, double[] balance, int maxAccts, File myinput, Scanner inputFile) throws IOException {
    maxAccts = 0;
    while(inputFile.hasNextInt()) {
        //Test for reading integers accurately
        //System.out.println(inputFile.nextInt());
        maxAccts++;
        inputFile.nextLine();}

    //Test for maxAccts
    System.out.println(maxAccts);

    acctNum = new int[maxAccts];
    balance = new double[maxAccts];
    Scanner AccountFiller = new Scanner(myinput);
    while(inputFile.hasNext());{            
    int i = 0;
    while (i < maxAccts) {
            acctNum[i] = AccountFiller.nextInt();
            balance[i] = inputFile.nextDouble();
    i++;}
    //for (int i = 0; i < maxAccts; i++)

    System.out.println(acctNum[1]);}
    return maxAccts;
}

我不断收到以下错误:

Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextDouble(Unknown Source)

此时我不知道为什么会出错。在我的脑海中,文档中的光标应该位于整数(帐号)之后,并且我没有遇到该部分的问题。

最佳答案

您可能想修复 while 循环

你的第二个 while 循环如下所示:

while(inputFile.hasNext());{

在 while 和大括号之间有一个分号,这意味着循环体是空的,循环完成后,您将运行大括号内的代码。 循环应该是这样的:

while(inputFile.hasNext()) {

这会导致读取 nextDouble 的错误,因为我们刚刚消耗了扫描仪的源,直到没有下一个。

您可能还想再次检查您想要如何读取文件,因为第一部分对我来说并没有多大意义,看来您只是跳过了文件中找到的所有整数(同时计算您跳过了多少次)

关于java - 并行数组和从文件读取整数/ double 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55638600/

相关文章:

java - 如何对字符串 ArrayList 中的元素进行排序?

java - 从 HashMap 获取值并填充 Java 对象

java - 无法更新 oracle 中的 clob 字段

c++ - 删除动态分配的数组时出错

功能代码

arrays - 如何使用笛卡尔树将数组从索引 i 多次反转到索引 j?

Java, HashMap 中的 HashMap

java - 如何知道MQ PCF命令中哪个参数不正确?

java - 在java中的变量名末尾 append 一个数字

java - 你将如何在 Java 中实现 LRU 缓存?