开始读取的文件是
11 -5 -4 -3 -2 -1 6 7 8 9 10 11
8 -33 -22 -11 44 55 66 77 88
11和8,第一个整数,开始表示所述数组的大小。结果输出,假设是一个数组,假设它们是第一个整数大小的两个不同的数组。
我可以使用以下代码读取并实现第一行整数
public class sortList{
public static void main(String args[]){
try{
Scanner s = new Scanner(new File("data"));
int[] array = new int[s.nextInt()];
for (int i = 0; i < array.length; i++){
if (i == 0){
continue;
}
array[i] = s.nextInt();
System.out.println(array[i]);
}
}
catch(IOException e){
e.printStackTrace();
}
}
}
现在我如何读取第二行整数,因为我在这里搜索到处都是。无济于事
答案 0 :(得分:1)
你真的在那里。你有一个循环来越过第一行。第一个循环完成后,您已经有效地耗尽了整行文本。
然后您可以使用Scanner#nextLine()
方法将扫描仪推进到下一行。
然后,您创建另一个数组来存储您的第二行文本,类似于您创建第一行的方式。您无需复制Scanner
。
实际上,您可以将其编写为一个单独的,简洁的方法,并且只有在您准备好填充数组时才调用它。在方法之外(在你打电话之后),你可以将你的扫描仪推进到下一行。
public int[] readLine(Scanner fileReader) {
int[] array = new int[fileReader.nextInt()];
for (int i = 0; i < array.length; i++){
array[i] = fileReader.nextInt();
}
return array;
}
答案 1 :(得分:0)
public class sortList{
public static void main(String args[]){
try{
Scanner s = new Scanner(new File("data.txt"));
int[] array = new int[s.nextInt()];
for (int i = 0; i < array.length; i++){
array[i] = s.nextInt();
System.out.println(array[i]);
}
s.nextLine();
int[] array1 = new int[s.nextInt()];
for (int i = 0; i < array1.length; i++){
array1[i] = s.nextInt();
System.out.println(array1[i]);
}
}
catch(IOException e){
e.printStackTrace();
}
}
答案 2 :(得分:-1)
首先,删除这三行:
if (i == 0) {
continue;
}
然后,在while (s.hasNextInt()) { … }
循环的int[] array
和}
附近放置一个for
(或者我没有查找文档)。
要查看这一切是否有效,您应该添加System.out.println("one record: " + Arrays.toString(array));
作为while
循环的最后一行。