我有一个字符串,如果可能,我必须将其拆分为相同长度的子字符串。我发现这个解决方案只有在字符串长度是 4 的倍数时才有效。
String myString = "abcdefghijklm";
String[] split = myString.split("(?<=\\G....)");
这将产生:
[abcd, efgh, ijkl, m]
我需要的是“从字符串的末尾”拆分。我想要的输出应该是这样的:
[a, bcde, fghi, jklm]
我如何实现这一目标?
最佳答案
这应该这样做:
String[] split = myString.split("(?=(....)+$)");
// or
String[] split = myString.split("(?=(.{4})+$)");
它的作用是:仅当空字符串前面有 4 个字符的倍数时才拆分空字符串,直到到达输入结束为止。
当然,这有一个糟糕的运行时间(O(n^2))。您可以通过简单地自己拆分来获得线性运行时间算法。
正如@anubhava 所提到的:
关于java - 每 4 个字符分割一个字符串?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54637079/