从文件中读取两位数并避免使用空格/字符串(Java)

时间:2018-02-28 19:50:41

标签: java

我正在尝试从文件中读取并将我的数字添加到数组中。该文件可以包含空格和字符串,但我只需要数字。

0
4
xxx
52

23

到目前为止,这是我的代码:

Scanner scanner = new Scanner(new File("file.txt"));
int i=0;
while(scanner.hasNextInt() && count < 15) {   //only need first 15 digits
    arr[i++] = scanner.nextInt();
    count+= 1;
}

代码当前有效,但一旦到达字符串或任何空格就会停止。

2 个答案:

答案 0 :(得分:2)

while遇到第一个非整数时,它将退出。你需要改变条件:

// Loop until eof or 15 numbers
while(scanner.hasNext() && count < 15) {   //only need first 15 digits
    // Have a number?
    if (scanner.hasNextInt()) {
        arr[i++] = scanner.nextInt();
        count+= 1;
    }
    // Not a number, consume.
    else {
        scanner.nextLine();
    }
}

答案 1 :(得分:1)

试试这个:

while (scanner.hasNext() && count < 15) { // use Scanner::hasNext 
    if (scanner.hasNextInt()) {           // if is number then add it to the array
        arr[i++] = scanner.nextInt();
        count++;
    } else {                             
        scanner.next();                   // else ignore the value
    }
}