扫描文件中的给定数字 - Java

时间:2015-01-01 15:24:26

标签: java eclipse loops io

我遇到了方法问题。任务是扫描包含不同数字的文件。我想创建一个方法来扫描文件中的数字1到10.

问题是while循环永远不会激活。这是因为值永远不是真的,或者方法hasNextInt有问题以这种方式使用我不知道。

我已经使用循环内外的print语句进行检查,以找出方法的问题。

代码:

package jr222er_lab4;

import java.util.Scanner;
import java.io.*;

public class Histogram {
    public static void main(String[] args) throws IOException{
        File file = new File ("C:\\Users\\Johan\\Desktop\\histo.txt"); // imports our file
        Scanner n = new Scanner(file); // creates scanner

        System.out.println("Reading values from: "+file);
        int oneToHund = 0;
        int other = 0;

        while (n.hasNextInt()){
            int i = n.nextInt();
            if (i >= 1 && i <= 100){
                oneToHund++;
            }
            else 
                other++;
        }

        System.out.println("Numbers between [1,100]: "+oneToHund);
        System.out.println("Numbers out of this range: "+other);

        System.out.println("1 - 10 | "+firstTen(n));


    }



   // method in question 

    private static int firstTen(Scanner n){
        int result = 0;
        while (n.hasNextInt()){
            int i = n.nextInt();
            if (i >= 1 && i <= 10){
                result++;
            }
        }return result;
    }

奖金问题:我尝试在主要方法中执行此操作但似乎扫描程序已通过第一项任务(检查数字1 - 100)搜索文件,这是如何工作的?

1 个答案:

答案 0 :(得分:0)

firstTen(n)返回0,因为传递给方法已经三遍游标的扫描程序对象位于最后一个位置。在调用firstTen方法之前添加n = new Scanner(file);