提问人:Kemper Lee 提问时间:5/8/2022 最后编辑:Mark RotteveelKemper Lee 更新时间:5/9/2022 访问量:87
java.util.Scanner 拒绝接受下一个(或任何)输入 [已关闭]
java.util.Scanner refuses to take the next (or any) input [closed]
问:
当前错误消息“找不到符号:变量 nextLine 在 Scanner 类型的变量输入中”
最终它会做更多的事情,但我什至不明白为什么它不会阅读......所以可能需要一点XD
到目前为止的方法:
public static void flipCoins(Scanner input)
{
ArrayList<String> lines = new ArrayList<>();
while(input.hasNextLine())
{
lines.add(input.nextLine);
// WHERE THE ERROR OCCURS
}
System.out.print(lines.toString());
}
这些是我一直在尝试调试的链接:
整个扫描仪类:https://www.tutorialspoint.com/java/util/java_util_scanner.htm
.next() 具体来说:https://www.tutorialspoint.com/java/util/scanner_next.htm
编辑查看更多
我还收到此错误:“cannot find symbol: variable next in variable input of type Scanner”,如下所示:
lines.add(input.next);
答:
你让这件事变得比实际复杂得多。
在 java 中,方法调用必须以括号结尾;它们不是可选的。方法和字段具有单独的命名空间 - 没有 parens,是一个字段引用(所以“但为什么语言不添加它!”是一个非启动器,它不会向后兼容)。input.next
只需将 替换为 ,然后替换为 。input.next
input.next()
input.nextLine
input.nextLine()
你缺少括号“()”,nextLine() 是一个函数,在 java 中调用函数时,我们需要在函数名称后面加上括号来调用函数。与你在这里所做的类似
while(input.hasNextLine())
这将起作用
public static void flipCoins(Scanner input)
{
ArrayList<String> lines = new ArrayList<>();
while(input.hasNextLine())
{
lines.add(input.nextLine());
}
System.out.print(lines.toString());
}
电话
lines.add(input.nextLine);
需要 ( ) 在 .nextLine() 的末尾,因为它是 Scanner 类中的 void 方法。 它甚至可以(但通常不应该)被重写:
String input = new Scanner(file).nextLine();
因为它本质上只是 Scanner 对象的一部分。
评论