我想分割一些使用String.split()
的字符串。帶2個分隔符的Java分割字符串
我希望它根據字符分割字符串:"++"
和"+"
。例如,"1 + 1"
將被拆分爲{1, +, 1}
和"1 ++ 1"
將被拆分成。我寫這條線拆分文本:但它並不適用於"1 ++ 1"
工作(輸出:{ 1, +, +, 1 }
):
String[] temp = tokens.split("(?<=(\\++)|(\\+))|(?=(\\++)|(\\+))");
這爲"1 + 1"
({ 1, +, 1 }
輸出)工作正常。我知道我可以把它轉換成一個ArrayList,然後找到一個"+"
後跟一個"+"
,然後簡單地將它們組合成一個令牌,但是我很好奇它是否可以用split()
來做到這一點?
你的標記之間總是有空格嗎?如果是,那麼'split(「\\ s +」)'會更簡單。 – Pshemo 2015-02-08 19:37:40
嘗試使用貪婪的量詞「*」。沒有測試過:(\\ +)* – ccleve 2015-02-08 19:37:48
不,我想保留它,以便它可以是1 ++ 1或1 ++ 1或1+ 1等。 – 2015-02-08 19:38:43