2012-05-24 44 views
0

可能重複:
Split string with | separator in javaJava的String.split mehod起不到很好

我,當我做下面的小困惑:

String example1 = "Hello|World"; 
String[] splitRes; 

splitRes = example1.split("|"); 

我不會分裂字符串
你好索引0
全球指數1

但是,如果我會做

String example1 = "Hello:World"; 
String[] splitRes; 

splitRes = example1.split(":"); 

然後它..
爲什麼會發生?

+1

也許這是值得一讀[文件](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String中)) ? Quote:*「將該字符串按照給定[正則表達式]的匹配拆分(http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html#sum)。」* –

回答

6

分裂使用正則表達式,你必須躲避管,因爲它是「或」運營商正則表達式:

example1.split("\\|"); 
0

拆分需要一個正則表達式作爲參數,|是一個正則表達符號。 你將不得不使用它,其\在一個java字符串是他們兩個人的逃跑:\\

2

String.split()預計正則表達式作爲參數,|是元字符「或」正則表達式。你必須用\(所以它變成\|)逃脫。請注意,在Java字符串中,必須將其寫爲\\,因爲\也是Java字符串中的轉義字符。

1

|在正則表達式中使用,.split也使用正則表達式,因此您需要將其轉義。

String str = ""Hello:World"; "; 
String[] temp; 
String delimiter = "\\|"; 
SepString= str.split(delimiter); 
    /* print test */ 
for(int i =0; i < SepString.length ; i++) 
System.out.println(SepString[i]);