1

だから私は、アルファ文字以外のすべてのテキストをスクラブしようとしている Java の巨大なデータセットを扱っています。今私はこれをやっています:

snippet = snippet.toLowerCase();
snippet.replaceAll("[^A-Za-z]", "");                

しかし、消毒は計画通りに進んでいません。無関係な@#?、および:が通過しています。アイデア?

4

1 に答える 1

6

Javaでは、文字列不変です。値は変更できません。したがって、変更された文字列を返します。呼び出された文字列は変更されません。replaceAll()

戻り値を変数に戻す必要があります。

snippet = snippet.replaceAll("[^A-Za-z]", "");

この動作は最初は「オブジェクト指向ではない」ように見えますが、クラスが不変である場合は意味があります。

また、への呼び出しは必要ありません.toLowerCase()-正規表現は大文字にも一致します。

于 2012-06-07T19:13:08.367 に答える