1

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

这个想法来自于STACKOVERFLOWreturn S T A C K O V E R F L O W。可以用正则表达式来做到这一点还是我应该迭代字符串?

谢谢

4

3 回答 3

10
"StackOverFlow".replaceAll(".(?!$)", "$0 "));
于 2012-11-02T23:46:55.237 回答
2

不需要正则表达式。

只需遍历字符串并使用 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);
}
于 2012-11-02T23:47:42.227 回答
2

一起去

str.replaceAll("(?<!^)(?!$)", " ");

或同等学历

str.replaceAll("(?<=.)(?!$)", " ");

...或者如果您想在非空格字符后面添加空格字符,请使用

str.replaceAll("(?<=\S)(?!$)", " ");

...如果你想防止双空格(如果已经有一些空间),那么使用

str.replaceAll("(?<=\S)(?!\s)(?!$)", " ");
于 2012-11-02T23:49:36.663 回答