本文介绍了使用扫描仪不能存储文本数据转换成Java数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的code是刚刚打印出从我在不同的程序中创建列表中的最后一个号码。
我需要帮助的数据存储到一个数组,所以我可以后排序。
编辑:我需要从一个文件,该文件是numbers.txt'的数据并将其存储到一个数组

 公共静态无效的主要(字串[] args)抛出异常{
    INT numberArray = 0;
    INT []列表=新INT [16];    文件编号=新的文件(numbers.txt);
    尝试(扫描仪的getText =新的扫描仪(数字)){
        而(getText.hasNext()){
            numberArray = getText.nextInt();
            列表[0] = numberArray;
        }
        getText.close();
    }
    的System.out.println(numberArray);
    INT总和= 0;
    的for(int i = 0; I< List.length的数字,我++){
        总和=总和+列表[我]
    }
    的System.out.println(名单);
}
}


解决方案

校正在code。

1)内部while循环,列表[0] = numberArray; ,将保持在相同的指数0添加元素,所以纬度值将覆盖。因此,像列表[我] = numberArray; 将工作和 increement我而环。保重 ArrayIndexOutOfBound异常这里的

 公共静态无效的主要(字串[] args)抛出异常{
    INT numberArray = 0;
    INT []列表=新INT [16];    文件编号=新的文件(numbers.txt);
    INT I = 0;//检查arrayIndexOutofBound例外。由于大小被定义为16    尝试(扫描仪的getText =新的扫描仪(数字)){
        而(getText.hasNext()){
            numberArray = getText.nextInt();
            名单由[i] = numberArray;
             我++;
        }
        getText.close();
    }
    的System.out.println(numberArray);
    INT总和= 0;
    的for(int i = 0; I< List.length的数字,我++){
        总和=总和+列表[我]
    }
    的System.out.println(名单);
}
}

My code is just printing out the last number from the list I create in a different program.I need help storing the data into an array so I can sort it after.edit: I need to take data from a file which is 'numbers.txt' and store it into an array.

public static void main(String[] args) throws Exception {
    int numberArray = 0;
    int[] list = new int[16];

    File numbers = new File("numbers.txt");
    try (Scanner getText = new Scanner(numbers)) {
        while (getText.hasNext()) {
            numberArray = getText.nextInt();
            list[0] = numberArray;
        }
        getText.close();
    }
    System.out.println(numberArray);
    int sum = 0;
    for (int i = 0; i < list.length; i++) {
        sum = sum + list[i];
    }
    System.out.println(list);
}
}
解决方案

Correction in the code.

1.) Inside while loop, list[0] = numberArray;, will keep adding elements on the same index 0, so lat value will override. SO something like list[i] = numberArray; will work, and increement i inside while loop. Take care of ArrayIndexOutOfBound Exception here.

public static void main(String[] args) throws Exception {
    int numberArray = 0;
    int[] list = new int[16];

    File numbers = new File("numbers.txt");
    int i =0;

// Check for arrayIndexOutofBound Exception. SInce size is defined as 16

    try (Scanner getText = new Scanner(numbers)) {
        while (getText.hasNext()) {
            numberArray = getText.nextInt();
            list[i] = numberArray;
             i++;
        }
        getText.close();
    }
    System.out.println(numberArray);
    int sum = 0;
    for (int i = 0; i < list.length; i++) {
        sum = sum + list[i];
    }
    System.out.println(list);
}
}

这篇关于使用扫描仪不能存储文本数据转换成Java数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-01 22:43