2017-10-05 44 views
0

我有一個字符串像下面,如何使用給定的數字和空格來分割字符串?

String str = "12 67 239 2 47 29"; 

在這裏,我想用" 2 "

System.out.println(StringUtils.split(str, " 2 ")[0]); 

我得到了一個結果,1上面的字符串分割。

但我想要的結果如下圖所示,

12 67 239 2 

我如何能做到這一點的傢伙,請幫助我。

+2

的所有字符我想你想要的是得到字符串的'substring'而不是'split'的串。你可以通過實現一個正則表達式來輕鬆實現。您最好發佈您嘗試過的代碼。 – Aradhna

+0

您正在控制檯上寫入數組的第一個位置,而不是整個數組。此外,我同意Aradhna,你只是不想分割字符串 – Aldeguer

+0

@Aradhna爲什麼不分裂,'str.split(「(?<= \\ s2)\\ s +」)[0]',split作爲第一個參數接受正則表達式。 –

回答

1

使用下面的正則表達式來分割字符串中的一個或多個空格,其存在旁邊2.

str.split("(?<=\\s2)\\s+")[0] 
  • (?<=\\s2)正回顧後看起來旁邊<space>2

  • \\s+一個匹配或更多的空間。

  • 由於拆分只會出現在匹配的字符上,所以上面的字符串應該使用2旁邊存在的空格作爲分隔符來拆分。

刪除其存在的旁邊2.

System.out.println(str.replaceFirst("(\\s2)\\s+.*", "\\1")); 
+0

非常感謝@Avinash Raj。它工作正常。我有一個疑問,你在回答中提到的第三點,是否對帶有空格前綴和後綴的分隔符進行了這項工作? –

+0

您能否提供參考(或)「正則表達式」的教程鏈接。 –

+0

@ kanna是,但它會做後綴空白分裂。這個網站幾乎涵蓋了所有的正則表達式https://www.regular-expressions.info/quickstart.html –