我需要在字符串的每个字符后插入一个空格。
即。
String name = "Joe";
应该成为:"J o e"
答案 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()
不喜欢正则表达式,因为编译方法很慢