如何使文件仅读取整数并按数字对其进行排序

时间:2018-09-14 01:21:47

标签: java while-loop integer symbols

我想做的是从文件中读取数据,只打印出整数。我正在尝试不使用arraylist,它可以完美地与arraylist一起工作,但是我正在尝试另一种方式。问题是我的代码显示了扫描仪不是符号的错误。

error: cannot find symbol
              data[i++] = scannernextInt();
                          ^

error: cannot find symbol
              scanner.next();
              ^

您能解释为什么出现此错误吗?


我目前所拥有的:

 public static void main(String[] args) {

    int[] data = new int[8];
    int i = 0; 

    try
    {
       Scanner scanner = new Scanner(new File("data.txt"));
    }
    catch (FileNotFoundException e) 
    {
       System.out.println(" File does not exist.");
       scanner = null;
    }        


     while (scanner.hasNext())
        {
           if(scanner.hasNextInt())
           {
              data[i++] = scannernextInt();
              System.out.print(data[i]);
           }
           else
           {
              scanner.next();
           }
        }

1 个答案:

答案 0 :(得分:1)

编译器在try catch块内定义Scanner对象的范围。

您可以从“尝试捕获”中提高“扫描仪”的定义,也可以将使用扫描仪的逻辑移到“尝试捕获”中。

对于第一个错误,您要让访问操作员看起来像这样(为扫描仪问题选择第一个选项)

public static void main(String[] args) {

    Scanner scanner;
    int[] data = new int[8];
    int i = 0; 

    try {
       scanner = new Scanner(new File("data.txt"));
    } catch (FileNotFoundException e) {
       System.out.println(" File does not exist.");
       scanner = null;
    }        


     while (scanner.hasNext()) {
       if(scanner.hasNextInt()) {
          data[i++] = scanner.nextInt();
          System.out.print(data[i]);
       } else {
          scanner.next();
       }
     }
}
相关问题