我无法弄清楚这有什么问题。 我必须读入一个文件(该文件有数字)并将数字存储到一个数组中。
这是文件:
http://dl.dropboxusercontent.com/u/31878359/courses/15/scores1.txt
我理解第一个数字为零,我无法更改文件中数字或数字的顺序。
文件
0
10个
20个
30个
40个
50个
60个
70个
80个
90个
这是我的代码:
import java.util.*;
import java.io.*;
public class Check {
public static void main(String[] args)
throws FileNotFoundException {
Scanner input = new Scanner(new File("scores1.txt"));
process(input);
}
public static void process(Scanner input) {
int[] numbers = new int [input.nextInt()];
for (int i = 0; i < numbers.length; i++) {
numbers[i] = input.nextInt();
}
Arrays.sort(numbers);
System.out.print("numbers: "+Arrays.toString(numbers));
}
}
这是输出:
数字:[]
我假设这是一个声明数组的问题。
答案 0 :(得分:5)
问题是,您的第一个文件值是0
。因此数组大小为0
。更改您的第一个值,以便您可以将其余值添加到数组中。
答案 1 :(得分:2)
文件中的第一个值为0.
int[] numbers = new int [input.nextInt()]; // this input.nextInt() gets the first line
你正在制作一个大小为0的数组
由于文件中有10个数字。初始化大小为10;
int[] numbers = new int [10];
答案 2 :(得分:1)
public static void process(Scanner input) {
List<Integer> number = new ArrayList<Integer>();
while(input.hasNext()) {
number.add(input.nextInt());//i hope all ints are there in the file
}
int[] numbers = number.toArray(new int[number.size])
//then do sort and all
}
希望这会有所帮助
答案 3 :(得分:0)
我的建议是使用ArrayList
public static void process(Scanner input) {
List list = new ArrayList();
while(input.hasNextInt()){
list.add(input.nextInt());
}
Collections.sort(list);
System.out.print("numbers: " + list);
}