在Java中,如何在现有字符串的每个字符后插入空格?
我需要在字符串的每个字符后插入一个空格 i、 e。在Java中,如何在现有字符串的每个字符后插入空格?,java,string,Java,String,我需要在字符串的每个字符后插入一个空格 i、 e。 String name=“Joe” 应该变成:“joe”类似于: String joe = "Joe"; StringBuilder sb = new StringBuilder(); for (char c: joe.toCharArray()) { sb.append(c).append(" "); } System.out.println(sb.toString().trim()); 您可以使用字符串的tocharray()将
String name=“Joe”代码>
应该变成:“joe”
类似于:
String joe = "Joe";
StringBuilder sb = new StringBuilder();
for (char c: joe.toCharArray()) {
sb.append(c).append(" ");
}
System.out.println(sb.toString().trim());
您可以使用字符串的tocharray()将Joe转换为char[],然后遍历char[]将该字符转换为另一个char[],在将该字符添加到第二个char[]时,添加一个空格字符'''''。在循环中设置if-else以检测最后一个字符,这样就不会在最后一个字符后面意外添加空格字符。使用字符串将结果char[]的值()转换为字符串对象。char[]stringArray=strOrig.tocharray();
char[] stringArray = strOrig.toCharArray();
StringBuilder sb = new StringBuilder();
for(int index=0; index < stringArray.length; index++) {
sb.append(stringArray[index]);
sb.append(" ");
}
StringBuilder sb=新的StringBuilder();
对于(int index=0;indexShorter将使用正则表达式:
System.out.println("Joe".replaceAll(".(?!$)", "$0 "));
这会将每个单词中的所有字母隔开,而不是在单词之间
"Joe Black".replaceAll("\\B", " ") -> "J o e B l a c k"
这将为每个字符放置空格(包括原始空格)
删除最后一个空格:
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());
对于Android&Kotlin用户,如果您想在每个X字符后添加空格,请使用此选项
val stringWithSpaceAfterEvery4Chars = stringWith16Chars?.replace("....".toRegex(), "$0 ")
在这里,我在方法中添加了4个点,以便在整个字符串的每4个字符后添加空格。
如果每2个字符后需要空格,则在方法中仅添加2个点
我的变量:
stringWith16Chars = "123456789012"
而输出将是,
stringWithSpaceAfterEvery4Chars = "1234 5678 9012"
无正则表达式的解
name.chars().mapToObj(i -> (char) i + " ").collect(Collectors.joining()).strip()
不喜欢正则表达式,因为使用kotlin编译方法很慢
val textToBeDevided = "123456789"
textToBeDevided
.subSequence(1, textToBeDevided.length)
.chunked(3) // group every 3 chars
.joinToString(" ") // merge them applying space
略微优化:sb.setLength(sb.length()>0?sb.length()-1:0).toString()代码>即修剪生成器,而不是结果。这有一个额外的优势(与在字符上循环相比),即不会打断代理项对。现在有两个问题@沃特:你说的代理项对是什么意思?@StuperUser:用于表示“基本多语言平面”之外的字符对。请看课程描述,这是完美的!
val textToBeDevided = "123456789"
textToBeDevided
.subSequence(1, textToBeDevided.length)
.chunked(3) // group every 3 chars
.joinToString(" ") // merge them applying space