6
我需要做一些相当简单的事情,但没有哈希映射硬编码。从西里尔文到拉丁语ICU4j的音译java
我有一个字符串s,它在西里尔文我需要某种例子,如何使用一种自定义过滤器将它变成拉丁字符排序(给一个纯粹的拉丁例子,不要混淆任何人如果字符串s = sniff;我希望它能够查找嗅探并将它们变成其他东西(可能还有组合)
我可以看到ICU4j可以做这种事情,但我不知道如何实现它,因为我找不到任何工作示例(或我只是愚蠢)。
任何帮助表示赞赏。
感谢
最好的问候,
PS我需要批量翻译。我不关心风格或动态音译,只是一些关于ICU4j批量音译器的样子的基本示例。
K我真的明白了。
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);
}
}
对于简单的应用很有用。谢谢! – 2017-02-24 21:18:15
你在'abcCyr'数组中有一个错字,而不是你写'Б'的'Ü'。 – 2017-07-26 02:54:27
谢谢,编辑! – lxknvlk 2017-08-02 09:48:30