文字+空白のJava文字列の各文字を置き換える方法を探しています(最後のものを除く、または末尾の末尾の空白を削除します)
アイデアはSTACKOVERFLOW
returnからS T A C K O V E R F L O W
です。正規表現でこれを行うことは可能ですか、それとも文字列を反復する必要がありますか?
ありがとう
"StackOverFlow".replaceAll(".(?!$)", "$0 "));
正規表現は必要ありません。
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);
}
と一緒に行きます
str.replaceAll("(?<!^)(?!$)", " ");
または同等の
str.replaceAll("(?<=.)(?!$)", " ");
...または、非スペース文字の直後にスペース文字を追加する場合は、次を使用します
str.replaceAll("(?<=\S)(?!$)", " ");
...そして、二重スペースを防ぎたい場合(スペースがすでにある場合)、使用します
str.replaceAll("(?<=\S)(?!\s)(?!$)", " ");