0

その前にドル記号を含む「バランス」文字列があります。この記号を修正して、stingをdoubleに変換できるようにしたいのですが、コードが機能していません。

これが私が試したことです:

String balance = "$5.30";
balance = balance.replaceFirst("$", "");

コードは何の違いもないようです。さらに奇妙なことに、以下のコードは私が必要としていることを正確に実行します。

String balance = "$5.30";
balance = balance.replaceFirst(".", "");

2番目のコードを使用することもできますが、なぜそれがこの結果につながるのかを理解したいと思います。

4

1 に答える 1

7

$.はJava正規表現の世界では特殊文字(メタ文字)です。通常の文字として扱うには、バックスラッシュでエスケープする必要があります。

String balance = "$5.30";
balance = balance.replaceFirst("\\$", "");

String balance = "$5.30";
balance = balance.replaceFirst("\\.", "");

したがって :

      String balance = "$5.30";
      balance = balance.replaceFirst("\\.", "").replaceFirst("\\$", "");
      System.out.println(balance);

出力:530

$正規表現についての説明と.意味を追加したかっただけです。

  1. $行末が続くかどうかを確認するために使用されます
  2. .任意の記号に一致するために使用されます

これがJavaでの正規表現のチュートリアルです

于 2012-12-23T00:03:32.317 に答える