在每两个字符后拆分一个字符串

lis*_*isa 2 java string

我想在每两个字符后分割一个字符串.

例如:

String aString= "abcdef"
Run Code Online (Sandbox Code Playgroud)

分手后我想要 "ab cd ef"

我该怎么做?

谢谢 :)

ass*_*ias 6

如果您希望输出与具有额外空格的相同字符串,您可以简单地使用:

String newString = aString.replaceAll("(..)", "$1 ")
Run Code Online (Sandbox Code Playgroud)


Ank*_*thi 6

使用正则表达式:

        String str= "abcdef";

        String[] array=str.split("(?<=\\G.{2})");

        System.out.println(java.util.Arrays.toString(array));       
Run Code Online (Sandbox Code Playgroud)

输出:

[ab, cd, ef]

  • 使用 Java8 为 Android 输出 [ab, cdef]。为什么? (2认同)

anu*_*ava 6

这个基于负 looakahead的正则表达式应该适合你:

String repl = "abcdef".replaceAll("..(?!$)", "$0 ");
Run Code Online (Sandbox Code Playgroud)

PS:这将避免在最后一次匹配后追加空格,因此您会得到以下输出:

"ab cd ef"
Run Code Online (Sandbox Code Playgroud)

代替:

"ab cd ef "
Run Code Online (Sandbox Code Playgroud)