2011-02-16 67 views
0

如果我有一個變量字符串,它存儲了大字符串中不同部分的字符,那麼如何使用正則表達式使用split命令分割較大的字符串?java string.split()正則表達式幫助

例如字符串變量可以存儲「DEF」 較大的字符串可以是「ABCDEFGHI」

當分割命令預成形有正則表達式輸入作爲字符串變量,所得到的拆分將是這樣的:

ABC GHI

編輯:這裏是代碼

String string = new String("2+22*5-1*2"); 
String multiply = new String("22*5"); 

int leftNum = Integer.parseInt(multiply.split("\\*")[0]); 
int rightNum = Integer.parseInt(multiply.split("\\*")[1]); 

System.out.println(string); 
System.out.println(multiply); 
System.out.println(leftNum * rightNum); 

//the following should print "2+" 
String left = string.split(multiply)[0]; 
System.out.println(left); 

回答

0
string.split("\\Q" + substring + "\\E"); 

\ Q和\ E爲你轉義元字符。

1

"abcdefghi".split("def")將產生{"abc", "ghi"}

+0

你的意思是yield {「abc」,「ghi」} – 2011-02-16 06:18:59

+0

對不起,我編輯了我的答案。 – sjr 2011-02-16 06:19:36

0

你必須逃離*使用的multiply內容爲正則表達式(的split參數是一個正則表達式):

String regexp = multiply.replace("*", "\\*"); 
String left = string.split(regexp)[0]; 

這應該打印預期的結果(2+