2012-08-06 103 views
-5

我有一個字符串"Foo*#*Bar*#*Foo1*#*Bar1"如何用分隔符分割字符串?

我想這String.split(String RegularExpression)使用將返回

[0] = "Foo"; 
[1] = "Bar"; 
[2] = "Foo1"; 
[3] = "Bar1"; 

我試圖\*#*\當正則表達式,但它沒有返回我想要的。

+1

'Noob'在這種情況下代表什麼? – 2012-08-06 09:34:02

+0

另外,它返回了什麼? – Nanne 2012-08-06 09:35:35

+0

@edem:新手或天真 – 2012-08-06 09:37:20

回答

8

您需要的逃生星號:

\*#\* 

所以在Java中,你會做這樣的事情:

String[] str = mystring.split("\\*#\\*"); 

嘗試Regexr.com與正則表達式進行試驗。

+1

你的意思是'String [] str = mystring.split(「\\ *#\\ *」);' – 2012-08-06 09:48:08

2

對於你的榜樣,

List<String> matchList = new ArrayList<String>(); 
Pattern regex = Pattern.compile("\\w+"); 
Matcher regexMatcher = regex.matcher(subjectString); 
while (regexMatcher.find()) { 
    matchList.add(regexMatcher.group()); 
} 

將在subjectString返回所有字母數字字符串的列表。

或者,你可以分割的分隔符:

String[] splitArray = subjectString.split("\\*#\\*"); 

請注意,您必須在Java字符串使用所有的反斜槓。

3
for (String part:"Foo*#*Bar*#*Foo1*#*Bar1".split("\\*#\\*")) 
    System.out.println(part); 

我們需要在兩個星號(在java字符串中)有兩個反斜槓。

1
String splitable= "Foo*#*Bar*#*Foo1*#*Bar1"; 
String[] splitted=splitable.split("\\*#\\*");