我正在寻找替换字符串+空格的Java字符串的每个字符的方法(除了最后一个或删除末尾的尾随空白)
这个想法来自STACKOVERFLOW
返回S T A C K O V E R F L O W
。可以用正则表达式执行此操作,还是应该迭代字符串?
由于
答案 0 :(得分:10)
"StackOverFlow".replaceAll(".(?!$)", "$0 "));
答案 1 :(得分:2)
不需要正则表达式。
只需遍历String并使用StringBuilder:
String withSpaces = addSpaces("StackOverflow");
public String addSpaces(String s) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
sb.append(s.charAt(i)).append(" ");
}
return sb.substring(0, sb.length() - 1);
}
答案 2 :(得分:2)
使用
str.replaceAll("(?<!^)(?!$)", " ");
或同等的
str.replaceAll("(?<=.)(?!$)", " ");
...或者如果您想在非空格字符后面添加空格字符,请使用
str.replaceAll("(?<=\S)(?!$)", " ");
...如果你想防止双重空格(如果已经有一些空格),那么使用
str.replaceAll("(?<=\S)(?!\s)(?!$)", " ");