我正在尝试从文件中读取并将我的数字添加到数组中。该文件可以包含空格和字符串,但我只需要数字。
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;
}
代码当前有效,但一旦到达字符串或任何空格就会停止。
答案 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
}
}