World
Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1478)
at tictactoe.ScannerDemo.main(ScannerDemo.java:22)
但是如果我对if语句进行注释,则输出是正确的,即
Hello
World
K
所以,我不知道它为什么会发生,如何修复?这是我的代码:
public class ScannerDemo {
public static void main(String[] args) {
String s = "Hello World K";
Scanner scanner = new Scanner(s);
while (scanner.hasNext()) {
//if I comment the if statement, the result is normal
if(scanner.next().equalsIgnoreCase("q")){
break;
}
System.out.println(scanner.next());
}
// close the scanner
scanner.close();
}
}
查看scanner.hasnext()
以及调用scanner.next()
的频率,即每次调用hasnext()
两次。由于next()
返回下一个元素,因此第一个调用将返回“hello”,第二个调用将返回“world”,正如您已经注意到的那样。
现在,在循环的第二次迭代中,仍然有一个值为“you”的“next”元素,它是通过调用if-语句中的next()
返回的。但是,对next()
的下一次调用中断,因为没有更多的输入。
要解决这个问题,只调用next()
一次,并保留对字符串的引用:
while (scanner.hasNext()) {
String token = scanner.next();
if(token .equalsIgnoreCase("q")){
break;
}
System.out.println(token );
}
问题内容: 在碰到此链接http://www.javacodegeeks.com/2013/01/java-thread-pool-example-using- executors-and-threadpoolexecutor 之后,这是我第一次为新项目使用Java线程池。 .html ,我对此更加困惑,这是页面中的代码, 在代码中,创建了一个固定大小的池并创建了10个工作线程,对吗? 线程池应该
我用这样的JAVA_OPTS启动了 jvm: 过了一段时间,当我查看GC日志时:
关于静态的东西: 类共享静态方法的实例 类似的问题: Java:何时使用静态方法 “静态”关键字在类中有什么作用? 我感到困惑的是: 静态方法只有一个内存块? 如果我在多线程中使用静态方法,会阻塞吗?
问题内容: 与此代码有点混淆。 我在pg-go 仓库中找到了这段代码,不知道为什么这样声明。请解释一下用这种方式声明变量的用例是什么。 问题答案: 这在运行时不会执行任何操作,但是除非类型满足接口要求,否则编译将失败。这是一种静态断言。
版本:2.1.11 问题:我有一些错误的参数配置:max.poll.records:500 max.poll.interval.ms:10000。但消耗大约需要25000秒。因此,它将遇到异常:org.apache.kafka.clients.consumer.CommitFailedException:提交无法完成,因为组已经重新平衡并将分区分配给了另一个成员。这意味着对poll()的后续调用之
我正在尝试提出一种解决方案,它涉及在连接操作之后应用一些逻辑,从多个中的中选择一个事件。这类似于reduce函数,但它只返回1个元素,而不是递增地返回。因此最终结果将是单个(,对,而不是一个 每个键保证只到达一次。 假设像上面这样的连接操作,它用4个生成了1个,成功地连接并收集在。现在,我想做的是,立即访问这些值,并执行一些逻辑以将正确匹配到一个。例如,对于上面的数据集,我需要(,和)。 将为每个