3

私は例えばこれを持っています:

"hello . world . thanks ."

そして私はこれを取得したい:

"hello. world. thanks."

試してみました

text = text.replaceAll(" .",".");
text = text.replaceAll(" \\.",".");
text = text.replaceAll(" \\.","\\.");

しかし、うまくいきません。解決策はありますか??

全てに感謝

4

3 に答える 3

7

replaceAll最初の引数に正規表現を使用します。本当に単純なものが必要な場合(実際の問​​題がそれほど複雑ではないことを前提として、与えられた例の別名)を使用するだけreplaceです。

text = text.replace(" .", ".");

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#replace(java.lang.CharSequence, java.lang.CharSequence)

于 2013-06-28T17:48:37.027 に答える
5

あなたの2番目の方法はうまくいったはずです。

前に 1 対多のスペースまたはタブがあると思います.。その場合、+量指定子を使用して 1 対多のスペースに一致させる必要があります。

text = text.replaceAll("\\s+[.]",".");

は正規表現で特別な意味を持つため、 orを.使用してエスケープする必要があります。\\.[.].

\sと類似しています[ \t\r\n]

于 2013-06-28T17:46:35.943 に答える
3

最初から使わないことをお勧めしますString.replaceAll。ここでは正規表現は必要ありません。String.replace代わりに使用してください。

text = text.replace(" .", ".");
于 2013-06-28T17:48:14.680 に答える