如何在 Java 中围绕特定数字倍数的字符序列拆分字符串?示例:我有一个二进制字符串
101010100010000001110101110111
我想将它拆分为 3 的倍数的零序列,即它应该返回
[1010101, 1, 1110101110111]
(它应该考虑可被 3 整除的零的正则表达式序列,在本例中为 000 和 000000)
我尝试使用 split("[0{3}]+")
但它不起作用。
最佳答案
我认为split("(0{3})+")
应该解决它。在 []
之间放置一些东西意味着您正在尝试查找该 block 中的某些字符。
更新
如果我们想要评论中想要的内容,应该是这样的:
split("(?<!0)(0{3})+(?!(0{1,2}))")
。它有点复杂,但它应该给出所需的输出。
假设我们有 100001
作为输入。该部分(?<!0)
将确保永远不会有 0
开头,否则结果可能类似于 [10, 1]
。和(?!(0{1,2}))
检查是否还剩 1 个或 2 个 0
.
这将给出 [100001]
与给定的输入。有输入1000100001
它将导致 [1, 100001]
关于java - 在 Java 中围绕 char 序列分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49773823/