如何在Java中围绕特定数字的多个字符序列拆分字符串?示例:我有一个二进制字符串
101010100010000001110101110111
我希望将它分成零序列,即3的倍数,即它应该返回
[1010101, 1, 1110101110111]
(它应该采用零的正则表达式序列,可以被3整除,在这种情况下为000和000000)
我尝试使用split("[0{3}]+")
,但它不起作用。
答案 0 :(得分:4)
我认为split("(0{3})+")
应该解决它。在[]
之间放置一些东西意味着您正在尝试查找该块中的某些字符。
<强>更新强>
如果我们想要评论中所需的内容,它应该是这样的:
split("(?<!0)(0{3})+(?!(0{1,2}))")
。它有点复杂,但它应该提供所需的输出。
所以我们假设我们有100001
作为输入。部分(?<!0)
将确保开头永远不会有0
,否则结果可能看起来像[10, 1]
。 (?!(0{1,2}))
会检查是否有1个或2个0
。
这将为[100001]
提供给定的输入。输入1000100001
会产生[1, 100001]
答案 1 :(得分:1)
尝试
String str = "101010100010000001110101110111";
String[] strArray = str.split("(0{3})+");
System.out.println(Arrays.toString(strArray));
答案 2 :(得分:0)
尝试
class Scratch {
public static void main(String[] args) {
String s = "101010100010000001110101110111";
for (String el : s.split("(0{3})+")) {
System.out.println(el);
}
}
}
答案 3 :(得分:0)
使用正则表达式分割字符串。
这是一个非常强大的工具。几乎是一种语言本身。
在您的情况下:
<强> s.split( “0 {3,}”)强>
见。
大卫。