2014-03-24 50 views
-8

我需要分割文本(字符串),文本就是這樣的:的Java:拆分文本

[title],[description blablablablablabla] 

有沒有辦法做到這一點?我需要在一個String []中存儲括號之間的2個文本,用「,」分隔。

+1

字符串分割功能。 http://docs.oracle.com/javase/6/docs/api/java/lang/String.html – jrowe08

+0

['string.split(「,」)'](http://docs.oracle.com/javase /6/docs/api/java/lang/String.html#split(java.lang.String)) – Whymarrh

+3

@ jrowe08該文檔已過時。改爲使用http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#split-java.lang.String-。 –

回答

3

您可以使用PatternMatcher

String input = "[title],[description blablablablablabla]"; 

Pattern pattern = Pattern.compile("\\[(.*?)\\]"); 
Matcher matcher = pattern.matcher(input); 
ArrayList<String> stringList = new ArrayList<String>(); 

while(matcher.find()) { 
    stringList.add(matcher.group(1)); 
} 

//If you just need the results to be stored in an array of Strings anyway. 
String[] stringArray = stringList.toArray(new String[stringList.size()]); 
+0

這段代碼真的幫助了我!非常感謝! – erickles

+0

很高興幫助! – Hari

9

您可以使用String類的split(String str)方法。例如:

String resultArray[] = stringToSplit.split(","); 
+1

如果'[標題],[描述]'是'[Hans Brinker,或銀溜冰鞋],[19世紀早期荷蘭人生活的豐富多彩的肖像以及青春的榮譽故事,這將如何工作。 ]「'? –

+0

這完全是我的疑問。在支架內可以有一個「,」。 – erickles

1

是的,這是很容易的,試試這個:

String text = "[title],[description blablablablablabla]";   
    String[] splitted = text.replaceAll("\\[", "").replaceAll("\\]", "").split(","); 
+2

只是fyi,當替換項不需要是正則表達式(如這裏),你可以簡單地編碼'text.replace(「[」,「」).replace(「]」,「」).split(「 ,「);'。或者你可以使用正則表達式,但是將兩個替換結合成一個調用:'text.replaceAll(「\\ [| \\]」,「」).split(「,」);'。較少的代碼==好:) – Bohemian