簡體   English   中英

java string.split()正則表達式幫助

[英]java string.split() regex help

如果我有一個可變字符串,該字符串存儲的字符段與較大的字符串不同,那么如何使用帶有regex的split命令將較大的字符串拆分為較小的字符串?

例如,字符串變量可以存儲“ def”。較大的字符串可以是“ abcdefghi”

當使用正則表達式輸入作為字符串變量執行split命令時,所得的拆分將如下所示:

abc吉

編輯:這是代碼

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);

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

您必須轉義*才能multiply的內容用作正則表達式( split的參數為正則表達式):

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

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

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

\\ Q和\\ E為您轉義了元字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM