java - 将字符串 N 拆分为 N/X 个字符串

标签 java regex string split math

我想要一些关于如何根据算术运算将字符串拆分为 N 个单独字符串的指导;例如 string.length()/300。

我知道使用诸如

之类的分隔符来做到这一点的方法
testString.split(",");

但是如何通过 split 方法使用贪婪/不情愿/占有量词呢?


更新:根据要求提供一个类似的示例,说明我希望实现的目标;

String X = "32028783836295C75546F7272656E745C756E742E657865000032002E002E005C0"

结果为 X/3 (或多或少...手工完成)

X[0] = 32028783836295C75546F

X[1] = 6E745C756E742E6578650

x[2] = 65000032002E002E005C0

不用担心解释如何将它放入数组中,我对此没有问题,只是如何在不使用定界符的情况下进行拆分,而是算术运算

最佳答案

您可以通过在 (?<=\G.{5}) 上拆分来做到这一点其中字符串 aaaaabbbbbccccceeeeefff将分为以下几个部分:

aaaaa
bbbbb
ccccc
eeeee
fff

\G匹配上一个匹配项发生的(零宽度)位置。最初,\G从字符串的开头开始。请注意,默认情况下 . meta char 不匹配换行符,因此如果您希望它匹配每个字符,请启用 DOT-ALL:(?s)(?<=\G.{5}) .

演示:

class Main {
  public static void main(String[] args) {
    int N = 5;
    String text = "aaaaabbbbbccccceeeeefff";
    String[] tokens = text.split("(?<=\\G.{" + N + "})");
    for(String t : tokens) {
      System.out.println(t);
    }
  }
}

可以在这里在线测试:http://ideone.com/q6dVB

编辑

由于您要求提供有关正则表达式的文档,这里是建议的正则表达式包含的主题的具体教程:

关于java - 将字符串 N 拆分为 N/X 个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4128547/

相关文章:

python - sre_constants.error : nothing to repeat

c++ - 通过多个定界符解析 C++ 中的字符串

java - 如何修复 Firebase 身份验证中的空指针异常?

java - ViewPager2 与 RecyclerView 无法正确显示

java - 我如何从服务更新我的主 UI 并且仍然能够移动搜索栏

java - 使用 ArrayList 存储字符串

c# - 正则表达式只允许一个特殊字符?

php - 替换查询的正则表达式

c - C 中的字符串复制导致段错误

javascript - JQuery 脚本适用于 Firefox,但在 Chrome 中抛出 "undefined is not a function"