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

时间:2010-12-17 11:21:43

标签: java string

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

即。 String name = "Joe";

应该成为:"J o e"

9 个答案:

答案 0 :(得分:38)

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

System.out.println("Joe".replaceAll(".(?!$)", "$0 "));

答案 1 :(得分:8)

类似的东西:

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

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

System.out.println(sb.toString().trim());

答案 2 :(得分:8)

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

val stringWithSpaceAfterEvery4Chars = stringWith16Chars?.replace("....".toRegex(), "$0 ")

在这里,我在方法中添加了 4个点,以在整个字符串中的每第4个字符后添加空格。 如果要在每2个字符后留空格,则只需在方法中添加2个点

我的变量:

stringWith16Chars = "123456789012"

输出将是

stringWithSpaceAfterEvery4Chars = "1234 5678 9012"

答案 3 :(得分:5)

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

"Joe Black".replaceAll("\\B", " ") -> "J o e B l a c k"

这将为每个角色(包括原始空格)添加空间

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

答案 4 :(得分:1)

char[] stringArray = strOrig.toCharArray(); 
StringBuilder sb = new StringBuilder();

for(int index=0; index < stringArray.length; index++) {
   sb.append(stringArray[index]);
   sb.append(" ");
}

答案 5 :(得分:0)

您可以使用String的toCharArray()将Joe转换为char [],然后遍历char []以将char抓取到另一个char []中,当您将char添加到第二个char []时,添加一个空格字符' “”。在循环中设置if-else以检测最后一个字符,这样就不会在最后一个字符后面意外添加空格字符。使用String将valueOf()生成的char []转换为String对象。

答案 6 :(得分:0)

删除最终空格:

String joe = "Joe"; 
StringBuilder sb = new StringBuilder(); 
String sep = "";
for (char c: joe.toCharArray()) { 
    sb.append(sep).append(c);
    sep = " ";
} 

System.out.println(sb.toString()); 

答案 7 :(得分:0)

使用Kotlin

val textToBeDevided = "123456789" 
textToBeDevided
   .subSequence(1, textToBeDevided.length) 
   .chunked(3) // group every 3 chars
   .joinToString(" ") // merge them applying space

答案 8 :(得分:-1)

不使用正则表达式的解决方案

name.chars().mapToObj(i -> (char) i + " ").collect(Collectors.joining()).strip()

不喜欢正则表达式,因为编译方法很慢