我正在尝试使用Scanner阅读以下输入:
a -> b;
c -> d;
e -> f;
g -> h;
i -> j;
我希望我的输出为:
a
b
c
d
e
f
g
h
我已经尝试过:
s.replaceAll("[->;]", "").trim();
和
sc.useDelimiter("[->;]");
但每次我看到这个:
a
b
c
d
e
f
g
h
所以我得到12个字符(当然包括空格)而不是8个。有谁知道如何解决这个问题?感谢您的帮助。
答案 0 :(得分:3)
试试这个:
sc.useDelimiter("\\s*->\\s*|;\\s*");
代码:
String text = "a -> b; \n" +
"c -> d; \n" +
"e -> f;\n" +
"g -> h;\n" +
"i -> j; ";
Scanner sc = new Scanner(text).useDelimiter("\\s*->\\s*|;\\s*");
while(sc.hasNext()) {
System.out.println(sc.next());
}
打印:
a
b
c
d
e
f
g
h
i
j
如果sc.useDelimiter("[->\\s;]+")
中没有{{}}}可以成为您感兴趣的令牌的一部分,那么甚至可以[->\\s;]
。