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

正規表現は必要ありません。

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);
}
于 2012-11-02T23:47:42.227 に答える
2

と一緒に行きます

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

または同等の

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

...または、非スペース文字の直後にスペース文字を追加する場合は、次を使用します

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

...そして、二重スペースを防ぎたい場合(スペースがすでにある場合)、使用します

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