我想做的是从文件中读取数据,只打印出整数。我正在尝试不使用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();
}
}
答案 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();
}
}
}