在IntelliJ IDEA中运行以下程序:
package org.stepic.java;
import java.util.ArrayDeque;
import java.util.Iterator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
ArrayDeque<Integer> deque = new ArrayDeque<>();
//try (Scanner scan = new Scanner(System.in)) {
try (Scanner scan = new Scanner("1 2 3 4 5 6 7")) {
int i = 0;
while(scan.hasNext()){
if(scan.hasNextInt()) {
Integer number = scan.nextInt();
if((i++ % 2) == 1) deque.add(number);
} else {
scan.next();
}
}
Iterator<Integer> it = deque.descendingIterator();
while(it.hasNext()) {
Integer num = it.next();
System.out.printf("%s ", num.toString());
}
} catch(Exception e) {
}
}
}
如果我运行它,我可以在控制台中输入一些,然后按 Ctrl - D ,它将存储在扫描仪中。如果我在调试器中做同样的事情,IDEA只是跳过行:
Scanner scan = new Scanner(System.in)
我无法输入任何内容。在这种情况下,扫描仪buf为空。如何在调试模式下在控制台中输入文本?
答案 0 :(得分:0)
Stdin正常在调试模式(F5)下工作
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
if( scan.hasNext() ) {
System.out.println("Got " + scan.next());
}
}
它在调试模式下工作,println上有断点。
也许您没注意到在调试模式下[console]不是默认选项卡而您尝试在[调试器]窗口中输入文本?
答案 1 :(得分:0)
我认为您的Variable Watch中有scan.next()
或类似内容。删除它,然后它可能正常工作。我在Stack&lt;&gt;()