我有下面的字符串。我如何可以将这个示例字符串拆分为像Output这样的数组?@Java:按第一个字符零分割字符串
示例串:
000M10000100001
输出:它拆分到
String[]{"000M1","00001", "00001"}
我有下面的字符串。我如何可以将这个示例字符串拆分为像Output这样的数组?@Java:按第一个字符零分割字符串
示例串:
000M10000100001
输出:它拆分到
String[]{"000M1","00001", "00001"}
"000M10000100001".split("(?<=1)(?=0)")
使用lookbehead lookbehead来指定位置(以1结尾)。
你可以在 “边框” 时使用正则表达式拆分接下来是非零由零编,像这样:
Pattern p = Pattern.compile("(?<=[^0])(?=0.)");
String[] ss = p.split("000M10000100010");
表达(?<=[^0])
的第一部分是指“由前面的非零”。 表达式(?=0.)
的第二部分表示“后跟零和其他一些字符”。
如果我得到这个字符串: - “00M10000300010”它将返回=> String [] {“00M1”,“00003”,“0001”,“0”}。但我想要的正确答案是 - > String [] {“00M1”,“00003”,“00010”}。该功能应该不检查最后一个字符。 – Ryan
@Ryan为什么当另一个答案有完全相同的问题时,你不接受?这是一个简单的修复,请看看编辑。 – dasblinkenlight
分裂使用正则表达式,说字符串以1结尾虽然你可以有有很多的可能性。确保您可能拥有的字符串的可能实例以及设备模式。 –