繁体   English   中英

在Java中围绕char序列拆分字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM