7

文字列内のピリオド ( . ) をすべて削除したい。

したがって、私は試しました: inpt = inpt.replaceAll(".", "");、ただし、ピリオドのみを削除する代わりに、文字列の内容全体を削除します。

ピリオドのみを削除することはできますか? 回答ありがとうございます。

4

5 に答える 5

32

replaceAll引数として正規表現を取り、正規表現で.は「任意の文字」を意味します。

代わりに使用できますreplace

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

のすべての出現を削除します.

于 2013-02-16T10:09:23.663 に答える
11

replaceAll()を使用しないでくださいreplace():

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

replace()メソッドがあるため、すべてのオカレンスを置き換えないというのはよくある誤解ですreplaceAll()が、実際には両方ともすべてのオカレンスを置き換えます。2つの方法の違いはreplaceAll()、正規表現で一致することです(正規表現のドットは「任意の文字」を意味し、これはあなたが経験していたことを説明しています)がreplace()、リテラル文字列で一致します。

于 2013-02-16T10:10:05.040 に答える
6

String#replaceAll(String, String)正規表現を取ります。ドットは、何にでも一致する正規表現のメタ文字です。

使用する

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

また、 のすべてのドットを置き換えますinptが、最初のパラメーターをリテラル シーケンスとして扱います。 JavaDocを参照してください。

正規表現に固執したい場合は、ドットをエスケープする必要があります:

inpt = inpt.replaceAll("\\.", "");
于 2013-02-16T10:10:14.303 に答える
1

ドットをマスクする必要があると思います

inpt = inpt.replaceAll("\\.", "");
于 2013-02-16T10:10:41.073 に答える
0

replaceAll正規表現を使用する場合は、次を使用してください。

inpt = inpt.replaceAll("\\.", "")
于 2013-02-16T10:12:39.787 に答える