2011-02-12 41 views
0

我想读与扫描仪下面输入:Java的扫描仪定界符帮助

a -> b; 
c -> d; 
e -> f; 
g -> h; 
i -> j; 

,我想我的输出是:

a 
b 
c 
d 
e 
f 
g 
h 

我已经尝试过:

s.replaceAll("[->;]", "").trim(); 

and

sc.useDelimiter("[->;]"); 

但是每当我看到这一点:

a 

b 
c 

d 
e 

f 
g 

h 

所以我得到的(当然包括空格)12个字符,而不是8有谁知道如何解决这个问题?我感谢您的帮助。

回答

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;]可你是令牌的一部分感兴趣。

+0

非常感谢。它完美的作品。 – Loolooii 2011-02-12 18:57:29