2011-02-12 38 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