我不知道我做错了什么......这是我的代码:
String str = "Stan: " + System.getProperty("line.separator") + "2 . 3 | 1";
Scanner src = new Scanner(str).useDelimiter("\\s*[Stan:]+\\s*|\\s*[|]\\s+|\\p{javaWhitespace}+");
while(src.hasNext()) {
if(src.next().equals(".")) {
System.out.println("0");
} else {
System.out.println(src.next());
}
}
src.close();
我明白了:
.
1
如果我删除了其他{}我会得到0,这是正确的。
我想要什么?使用上面的完整代码我想得到输出,但每个数字应该是int的类型:
2
0
3
1
我很感激你的帮助!
的更新:
我需要这个代码用于这种输入:
Some text with spaces:
1 . 3 | 2 . .
-------------
8 2 . | 9 . .
答案 0 :(得分:0)
您可能每次循环调用next
两次。
只需存储一次,稍后再使用它,因此当您只想推进一个令牌时,不要提前两个令牌。
String next = src.next();
if(next.equals(".")) {
System.out.println("0");
} else {
System.out.println(next);
}