如何输入第二行

时间:2013-11-27 03:11:14

标签: java

开始读取的文件是

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();
      }
   }
}

现在我如何读取第二行整数,因为我在这里搜索到处都是。无济于事

3 个答案:

答案 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循环的最后一行。