正则表达式在字符串的每个字符后添加空格

时间:2012-11-02 23:45:04

标签: java regex

我正在寻找替换字符串+空格的Java字符串的每个字符的方法(除了最后一个或删除末尾的尾随空白)

这个想法来自STACKOVERFLOW返回S T A C K O V E R F L O W。可以用正则表达式执行此操作,还是应该迭代字符串?

由于

3 个答案:

答案 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)(?!$)", " ");