2012-10-09 149 views
3

我在分割以下字符串時遇到問題。Java與關鍵字分割字符串

String str = "eat big mac .at East MacDonald .from onwards"; 

我想要的結果是在

[ eat big mac, .at, East MacDonald, .from, onwards] 

我可以不受空間或點分裂,有沒有什麼辦法可以分成呢?

+1

如果你想拆就空間,爲什麼前三個詞不是分開的?最後兩個被拆分... – Baz

+2

什麼是確切的標準,會產生這樣的結果?或者是你的問題? – Wiseguy

+1

那些在前面有點的字符串是關鍵字,而其餘的是用戶的正常輸入。所以在例子.at&.from is關鍵字,所以我希望他們單獨。而「吃大麥克風」,「東麥克唐納」,「前進」是正常的輸入,我也需要它們。 – mikey

回答

0

對於您使用的每個字符串,您始終可以使用split()方法。

String str = "eat big mac .at East MacDonald .from onwards"; 
String[] spaceDelimitedStr = str.split(" "); 
String[] dotDelimitedStr = str.split("\\."); 
String[] commaDelimitedStr = str.split(","); 

,並因爲輸入到分割功能是一個正則表達式,你可以提供劃界的各種

對於你正在尋找它的將是很難得到你想要的結果,我問你爲什麼需要這樣做是因爲它的方式?

3

你可以用用特殊的記號(或分隔符)的關鍵字,然後使用這個分隔符分割:

String str = "eat big mac .at East MacDonald .from onwards"; 
String[] arr = str.replaceAll("(\\.\\w+)", "DELIMITER$1DELIMITER").split("DELIMITER"); 

這將產生輸出:

[eat big mac , .at, East MacDonald , .from, onwards]

+0

謝謝你的工作。 (: – mikey