我有一個字符串像下面,如何使用給定的數字和空格來分割字符串?
String str = "12 67 239 2 47 29";
在這裏,我想用" 2 "
System.out.println(StringUtils.split(str, " 2 ")[0]);
我得到了一個結果,1
上面的字符串分割。
但我想要的結果如下圖所示,
12 67 239 2
我如何能做到這一點的傢伙,請幫助我。
我有一個字符串像下面,如何使用給定的數字和空格來分割字符串?
String str = "12 67 239 2 47 29";
在這裏,我想用" 2 "
System.out.println(StringUtils.split(str, " 2 ")[0]);
我得到了一個結果,1
上面的字符串分割。
但我想要的結果如下圖所示,
12 67 239 2
我如何能做到這一點的傢伙,請幫助我。
使用下面的正則表達式來分割字符串中的一個或多個空格,其存在旁邊2.
str.split("(?<=\\s2)\\s+")[0]
(?<=\\s2)
正回顧後看起來旁邊<space>2
\\s+
一個匹配或更多的空間。
由於拆分只會出現在匹配的字符上,所以上面的字符串應該使用2旁邊存在的空格作爲分隔符來拆分。
或
刪除其存在的旁邊2.
System.out.println(str.replaceFirst("(\\s2)\\s+.*", "\\1"));
非常感謝@Avinash Raj。它工作正常。我有一個疑問,你在回答中提到的第三點,是否對帶有空格前綴和後綴的分隔符進行了這項工作? –
您能否提供參考(或)「正則表達式」的教程鏈接。 –
@ kanna是,但它會做後綴空白分裂。這個網站幾乎涵蓋了所有的正則表達式https://www.regular-expressions.info/quickstart.html –
的所有字符我想你想要的是得到字符串的'substring'而不是'split'的串。你可以通過實現一個正則表達式來輕鬆實現。您最好發佈您嘗試過的代碼。 – Aradhna
您正在控制檯上寫入數組的第一個位置,而不是整個數組。此外,我同意Aradhna,你只是不想分割字符串 – Aldeguer
@Aradhna爲什麼不分裂,'str.split(「(?<= \\ s2)\\ s +」)[0]',split作爲第一個參數接受正則表達式。 –