2016-01-05 119 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