15

かなり単純なことをする必要がありますが、ハッシュマッピングのハードコーディングは必要ありません。

私は String s を持っていて、それはキリル文字です。ある種のカスタム フィルターを使用してそれをラテン文字に変換する方法について、何らかの例が必要です (String s = sniff の場合に誰かを混乱させないように、純粋にラテン語の例を挙げます。スニフを調べて、それらを別のものに変更したい(組み合わせもあるかもしれません)。

ICU4jがこの種のことを実行できることはわかりますが、実際の例が見つからないため(または私はただ愚かです)、それを達成する方法がわかりません.

どんな助けでも大歓迎です。

ありがとう

よろしくお願いします、

PS バッチ翻訳が必要です。スタイルや動的音訳は気にしません。ICU4j バッチ文字変換器がどのように見えるかについての基本的な例です。

KIは実際にそれを手に入れました。

import com.ibm.icu.text.Transliterator;


public class BulgarianToLatin {


    public static String BULGARIAN_TO_LATIN = "Bulgarian-Latin/BGN";

    public static void main(String[] args) {
        String bgString = "Джокович";

        Transliterator bulgarianToLatin = Transliterator.getInstance(BULGARIAN_TO_LATIN);
        String result1 = bulgarianToLatin.transliterate(bgString);
        System.out.println("Bulgarian to Latin:" + result1);

    }

}

また、ルールベースの音訳のための最後の編集 (既存のものを一度も使用したくない場合、またはカスタムメイドのものが必要な場合)

import com.ibm.icu.text.Transliterator;

public class BulgarianToLatin {


    public static String BULGARIAN_TO_LATIN = "Bulgarian-Latin/BGN";

    public static void main(String[] args) {
        String bgString = "а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ю я  \n Юлиян Джокович";

        String rules="::[А-ЪЬЮ-ъьюяѢѣѪѫ];" +
        "Б > B;" +
        "б > b;" +
        "В > V;" +
        "ТС > TS;" +
        "Тс > Ts;" +
        "ч > ch;" +
        "ШТ > SHT;" +
        "Шт > Sht;" +
        "шт > sht;" +
        "{Ш}[[б-джзй-нп-тф-щь][аеиоуъюяѣѫ]] > Sh;" +
        "Я > YA;" +
        "я > ya;";
        Transliterator bulgarianToLatin = Transliterator.createFromRules("temp", rules, Transliterator.FORWARD);

        String result1 = bulgarianToLatin.transliterate(bgString);
        System.out.println("Bulgarian to Latin:" + result1);

    }

}
4

1 に答える 1