【发布时间】:2015-06-10 03:38:11
【问题描述】:
我不明白为什么这个循环一次都不执行:
String s = "1 2\n3 4";
Scanner scanner = new Scanner(s);
while(scanner.hasNext("\\d\\s\\d")) {
System.out.printf("%d %d\n", scanner.nextInt(), scanner.nextInt());
}
据我了解,“\d\s\d”表示数字后跟空格,后跟另一个数字 - 正是输入的样子,但循环永远不会执行一次。
我的意图是将 Scanner 与 stdin 一起使用,我想确保输入具有由空格分隔的两位数对的序列,但上面的代码示例已简化,因为我假设我做错了什么使用正则表达式。
谁能解释一下?提前致谢。
【问题讨论】:
-
你期望什么输出?
-
我希望两行分别包含两个整数,所以第 1 行:“1 2”,第 2 行:“3 4”
标签: java regex java.util.scanner