输入将是一个文本文件,其中包含0-9的任意数量的整数,且没有空格。如何使用这些整数填充数组,以便稍后对其进行排序?
到目前为止我所拥有的内容如下:
BufferedReader numInput = null;
int[] theList;
try {
numInput = new BufferedReader(new FileReader(fileName));
} catch (FileNotFoundException e) {
System.out.println("File not found");
e.printStackTrace();
}
int i = 0;
while(numInput.ready()){
theList[i] = numInput.read();
i++;
显然,List没有初始化,但我不知道它的长度是多少。另外,我不太确定如何做到这一点。感谢您的任何帮助。
为了澄清输入,它将如下所示: 1236654987432165498732165498756484654651321 我不知道长度,我只想要单个整数字符,而不是多个。所以0-9,而不是像我之前不小心说的那样0-10。
答案 0 :(得分:2)
使用Collection API,即ArrayList
ArrayList a=new Arraylist();
while(numInput.ready()){
a.add(numInput.read());
}
答案 1 :(得分:0)
您可以使用List<Integer>
代替int[]
。使用List<Integer>
,您可以根据需要添加项目,List
将随之增长。完成后,您可以使用toArray(int[])
方法将List
转换为int[]
。
答案 2 :(得分:0)
1。使用guava很好地将文件的第1行读入1 String
2。转换为字符串to char array - 因为你的所有数字都是一位数长度,所以它们实际上是char
s
3。将字符转换为整数。
4。将它们添加到列表中。
public static void main(String[] args) {
String s = "1236654987432165498732165498756484654651321";
char[] charArray = s.toCharArray();
List<Integer> numbers = new ArrayList<Integer>(charArray.length);
for (char c : charArray) {
Integer integer = Integer.parseInt(String.valueOf(c));
numbers.add(integer);
}
System.out.println(numbers);
}
打印:[1, 2, 3, 6, 6, 5, 4, 9, 8, 7, 4, 3, 2, 1, 6, 5, 4, 9, 8, 7, 3, 2, 1, 6, 5, 4, 9, 8, 7, 5, 6, 4, 8, 4, 6, 5, 4, 6, 5, 1, 3, 2, 1]