如何在Java中的现有字符串的每个字符后插入空格?

not*_*tme 14 java string

我需要在字符串的每个字符后插入一个空格.

String name = "Joe";

应成为: "J o e"

Pet*_*ler 38

更短的是使用正则表达式:

System.out.println("Joe".replaceAll(".(?!$)", "$0 "));
Run Code Online (Sandbox Code Playgroud)


Kis*_*nki 12

对于Android 和 Kotlin用户,如果您想在每X 个字符后添加空格,请使用此

val stringWithSpaceAfterEvery4thChar = stringWith12Chars?.replace("....".toRegex(), "$0 ")
Run Code Online (Sandbox Code Playgroud)

在这里,我在方法中添加了4 个点,以在整个字符串中的每 4 个字符后添加空格。如果您希望每 2 个字符后有空格,则只在方法中添加 2 个点

我的变量:

stringWith12Chars = "123456789012"
Run Code Online (Sandbox Code Playgroud)

输出将是,

stringWithSpaceAfterEvery4thChar = "1234 5678 9012"
Run Code Online (Sandbox Code Playgroud)


小智 8

就像是:

String joe = "Joe";
StringBuilder sb = new StringBuilder();

for (char c: joe.toCharArray()) {
   sb.append(c).append(" ");
}

System.out.println(sb.toString().trim());
Run Code Online (Sandbox Code Playgroud)

  • 稍微优化一下: `sb.setLength(sb.length() > 0 ? sb.length() - 1 : 0).toString();` 即修剪构建器,而不是结果。 (2认同)

rod*_*ion 5

这将占用每个单词中的所有字母,而不是单词之间的所有字母

"Joe Black".replaceAll("\\B", " ") -> "J o e B l a c k"
Run Code Online (Sandbox Code Playgroud)

这将为每个角色(包括原始空间)留出空间

"Joe Black".replaceAll("\\B|\\b", " ") -> " J o e  B l a c k "
Run Code Online (Sandbox Code Playgroud)