[英]Splitting a string around sequences of char in Java
如何用Java将字符串拆分为多个特定数字的字符序列? 示例:我有一个二进制字符串
101010100010000001110101110111
我想将其拆分为零的序列,该序列是3的倍数,即它应该返回
[1010101, 1, 1110101110111]
(它应考虑零可被3整除的正则表达式序列,在这种情况下为000和000000)
我尝试了split("[0{3}]+")
但是它不起作用。
我认为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]
尝试
String str = "101010100010000001110101110111";
String[] strArray = str.split("(0{3})+");
System.out.println(Arrays.toString(strArray));
尝试
class Scratch {
public static void main(String[] args) {
String s = "101010100010000001110101110111";
for (String el : s.split("(0{3})+")) {
System.out.println(el);
}
}
}
使用正则表达式拆分字符串。
这是一个非常强大的工具。 几乎是一种语言。
在您的情况下 :
s.split(“ 0 {3,}”)
再见。
大卫。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.