2016-01-05 116 views
-2

我有下面的字符串。我如何可以將這個示例字符串拆分爲像Output這樣的數組?@Java:按第一個字符零分割字符串

示例串:

000M10000100001 

輸出:它拆分到

String[]{"000M1","00001", "00001"} 
+0

分裂使用正則表達式,說字符串以1結尾雖然你可以有有很多的可能性。確保您可能擁有的字符串的可能實例以及設備模式。 –

回答

1

你可以在 「邊框」 時使用正則表達式拆分接下來是非零由零編,像這樣:

Pattern p = Pattern.compile("(?<=[^0])(?=0.)"); 
String[] ss = p.split("000M10000100010"); 

Demo.

表達(?<=[^0])的第一部分是指「由前面的非零」。 表達式(?=0.)的第二部分表示「後跟零和其他一些字符」。

+0

如果我得到這個字符串: - 「00M10000300010」它將返回=> String [] {「00M1」,「00003」,「0001」,「0」}。但我想要的正確答案是 - > String [] {「00M1」,「00003」,「00010」}。該功能應該不檢查最後一個字符。 – Ryan

+0

@Ryan爲什麼當另一個答案有完全相同的問題時,你不接受?這是一個簡單的修復,請看看編輯。 – dasblinkenlight