2

ó ü êドット、コンマ、その他の記号(スペイン語やフランス語の文字など)などの句読点を無視して、2つの文字列を(大文字と小文字を区別せずに)比較したい

いくつかの例:

  Hello == Helló
  Hello, Sam == Hello sam
  geo-code   == geocode == geo code

(すべてのオプションをカバーする必要はありません)

最善の解決策(外部ライブラリ、メソッドなど)

4

1 に答える 1

5

すべての特殊文字を削除します。

geo-code削除からのよう-になりgeocodeます。同様に、からスペースを削除しますgeo code

Hello, samスペースとカンマを削除するとHellosam、これらの文字列を比較できます。これがあなたがそれをする方法です。

さて、フランス語のような特殊文字について:これはあなたを助けます。

これが別のスレッドで見つかったコードです。私はそれをテストしていません。

import java.text.Normalizer;
import java.util.regex.Pattern;

public String deAccent(String str) {
    String nfdNormalizedString = Normalizer.normalize(str, Normalizer.Form.NFD); 
    Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
    return pattern.matcher(nfdNormalizedString).replaceAll("");
}
于 2012-10-28T14:40:01.810 に答える