ホームページ > Java > &#&チュートリアル > Java のテキストから発音区別符号を削除するにはどうすればよいですか?

Java のテキストから発音区別符号を削除するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-02 11:22:14
オリジナル
359 人が閲覧しました

How Can I Remove Diacritical Marks from Text in Java?

Unicode 文字から発音区別符号を削除する

多くのアプリケーションでは、アクセント、チルダ、ウムラウトなどの発音区別符号を含むテキストを処理する必要があります。これらのマークは、同じ基本文字の異なる発音を表す可能性があるため、データの処理と検索を複雑にする可能性があります。

正規化と発音記号の削除

発音記号を含むテキストを単純化するための一般的なアプローチの 1 つは、正規化することです。 Unicode の正規化形式 NFD (標準形式分解) を使用します。このプロセスでは、複合文字が基本文字と関連する発音記号に分解されます。

正規化されると、正規表現を使用して発音記号を削除できます。たとえば、次の Java 正規表現は、すべての発音区別記号とその他の修飾文字を照合して削除します。

Pattern diacriticsAndFriendsPattern = Pattern.compile("[\p{InCombiningDiacriticalMarks}\p{IsLm}\p{IsSk}\u0591-\u05C7]+");
ログイン後にコピー

このパターンを発音記号の削除に適用するには:

String normalizedString = Normalizer.normalize(inputString, Normalizer.Form.NFD);
String strippedString = diacriticsAndFriendsPattern.matcher(normalizedString).replaceAll("");
ログイン後にコピー

非発音記号文字の簡略化

発音記号に加えて、一部の特殊文字も文字列の処理中に処理する必要がある場合があります。簡素化。これらの文字は発音記号ではない可能性がありますが、それでもテキスト処理に影響を与える可能性があります。たとえば、「<」のような文字(未満)、「>」特定のアプリケーションでは、「$」(より大きい)および「$」(ドル記号)を置換または削除する必要がある場合があります。

次の Java クラスは、発音記号と追加の非発音記号の両方を処理する拡張文字列簡略化メソッドを提供します。 :

public class StringSimplifier {
    // ... (code snippet for StringSimplifier class) ...
}
ログイン後にコピー

simplifiedString メソッドは、入力文字列を正規化し、発音記号を削除し、追加の非発音記号を実行します。事前設定されたマッピングに基づいて文字を簡略化します。

アプリケーション

発音区別記号の削除は、次のようなさまざまなアプリケーションで役立ちます。

  • データベース検索: テキストを簡素化すると、ユーザーはテキストの有無にかかわらず入力できるため、より柔軟で正確な検索クエリが可能になります。発音記号。
  • 言語処理: 発音記号を削除すると、テキスト表現のバリエーションが減り、ステミングやテキスト分析などのタスクが容易になります。
  • 国際化: テキストの簡素化さまざまな言語や文字エンコーディングとの互換性を確保できるため、データの処理と表示が容易になります。

発音記号の削除の原則を理解し、Unicode 正規化や正規表現などのツールを利用することで、開発者はテキストを効果的に単純化し、データ処理と検索を改善できます。

以上がJava のテキストから発音区別符号を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート