makotan _at_ gmail dot com

icu4j

icu4j 3.2のTransliterator.getAvailableIDs()で帰ってくる物一覧

Accents-Any
Any-Accents
Any-Publishing
Arabic-Latin
Bengali-Devanagari
Bengali-Gujarati
Bengali-Gurmukhi
Bengali-Kannada
Bengali-Latin
Bengali-Malayalam
Bengali-Oriya
Bengali-Tamil
Bengali-Telugu
Cyrillic-Latin
Devanagari-Bengali
Devanagari-Gujarati
Devanagari-Gurmukhi
Devanagari-Kannada
Devanagari-Latin
Devanagari-Malayalam
Devanagari-Oriya
Devanagari-Tamil
Devanagari-Telugu
Fullwidth-Halfwidth
Greek-Latin
Greek-Latin/UNGEGN
Gujarati-Bengali
Gujarati-Devanagari
Gujarati-Gurmukhi
Gujarati-Kannada
Gujarati-Latin
Gujarati-Malayalam
Gujarati-Oriya
Gujarati-Tamil
Gujarati-Telugu
Gurmukhi-Bengali
Gurmukhi-Devanagari
Gurmukhi-Gujarati
Gurmukhi-Kannada
Gurmukhi-Latin
Gurmukhi-Malayalam
Gurmukhi-Oriya
Gurmukhi-Tamil
Gurmukhi-Telugu
Halfwidth-Fullwidth
Han-Latin
Hangul-Latin
Hebrew-Latin
Hiragana-Katakana
Hiragana-Latin
Jamo-Latin
Kannada-Bengali
Kannada-Devanagari
Kannada-Gujarati
Kannada-Gurmukhi
Kannada-Latin
Kannada-Malayalam
Kannada-Oriya
Kannada-Tamil
Kannada-Telugu
Katakana-Hiragana
Katakana-Latin
Latin-Arabic
Latin-Bengali
Latin-Cyrillic
Latin-Devanagari
Latin-Greek
Latin-Greek/UNGEGN
Latin-Gujarati
Latin-Gurmukhi
Latin-Han
Latin-Hangul
Latin-Hebrew
Latin-Hiragana
Latin-Jamo
Latin-Kannada
Latin-Katakana
Latin-Malayalam
Latin-NumericPinyin
Latin-Oriya
Latin-Tamil
Latin-Telugu
Latin-Thai
Malayalam-Bengali
Malayalam-Devanagari
Malayalam-Gujarati
Malayalam-Gurmukhi
Malayalam-Kannada
Malayalam-Latin
Malayalam-Oriya
Malayalam-Tamil
Malayalam-Telugu
NumericPinyin-Latin
Oriya-Bengali
Oriya-Devanagari
Oriya-Gujarati
Oriya-Gurmukhi
Oriya-Kannada
Oriya-Latin
Oriya-Malayalam
Oriya-Tamil
Oriya-Telugu
Publishing-Any
Spacedhan-Han
Tamil-Bengali
Tamil-Devanagari
Tamil-Gujarati
Tamil-Gurmukhi
Tamil-Kannada
Tamil-Latin
Tamil-Malayalam
Tamil-Oriya
Tamil-Telugu
Telugu-Bengali
Telugu-Devanagari
Telugu-Gujarati
Telugu-Gurmukhi
Telugu-Kannada
Telugu-Latin
Telugu-Malayalam
Telugu-Oriya
Telugu-Tamil
Thai-Latin
Any-Null
Any-Remove
Any-Hex/Unicode
Any-Hex/Java
Any-Hex/C
Any-Hex/XML
Any-Hex/XML10
Any-Hex/Perl
Any-Hex
Hex-Any/Unicode
Hex-Any/Java
Hex-Any/C
Hex-Any/XML
Hex-Any/XML10
Hex-Any/Perl
Hex-Any
Any-Lower
Any-Upper
Any-Title
Any-Name
Name-Any
Any-NFC
Any-NFD
Any-NFKC
Any-NFKD
Any-Tamil
Any-Telugu
Any-Malayalam
Any-Oriya
Any-Latin
Any-Gurmukhi
Any-Bengali
Any-Devanagari
Any-Kannada
Any-Hiragana
Any-Katakana
Any-Gujarati
Any-Han
Any-Cyrillic
Any-Hangul
Any-Arabic
Any-Greek
Any-Greek/UNGEGN
Any-Hebrew
Any-Thai

って事で変換やってみた・・・どんなのがあるのかなぁと探しつつ

String transliterateStr = "ひらがなカタカナハンカクガイルhonto";
Transliterator t1 = Transliterator.getInstance("Hiragana-Katakana");
assertEquals("ヒラガナカタカナハンカクガイルhonto", t1.transliterate(transliterateStr));

Transliterator t2 = Transliterator.getInstance("Katakana-Hiragana");
assertEquals("ひらがなかたかなはんかくがいるhonto", t2.transliterate(transliterateStr));

Transliterator t3 = Transliterator.getInstance("Katakana-Hiragana");
assertEquals("ひらがなかたかなはんかくがいるhonto", t3.transliterate(transliterateStr));

Transliterator t4 = Transliterator.getInstance("Katakana-Latin");
assertEquals("ひらがなkatakanahankakuka゛iruhonto", t4.transliterate(transliterateStr));

Transliterator t5 = Transliterator.getInstance("Hiragana-Latin");
assertEquals("hiraganaカタカナハンカクガイルhonto", t5.transliterate(transliterateStr));

Transliterator t6 = Transliterator.getInstance("Halfwidth-Fullwidth");
assertEquals("ひらがなカタカナハンカクガイルhonto", t6.transliterate(transliterateStr));

Transliterator t7 = Transliterator.getInstance("Fullwidth-Halfwidth");
assertEquals("ひらがなカタカナハンカクガイルhonto", t7.transliterate(transliterateStr));

Transliterator t8 = Transliterator.getInstance("Latin-Hiragana");
assertEquals("ひらがなカタカナハンカクガイルほんと", t8.transliterate(transliterateStr));

Transliterator t9 = Transliterator.getInstance("Latin-Katakana");
assertEquals("ひらがなカタカナハンカクガイルホント", t9.transliterate(transliterateStr));

一部勝手に半角が全角になってるけど"ハンカクガイル"は半角文字(笑)
Transliterator.getInstanceが滅茶苦茶重いことが判明。
変換自体はなかなか高速なので実用上問題なしって事で。

for(int i=0 ; i < 100 ; i++) {
System.out.println("1:"+t1.transliterate(transliterateStr));
assertEquals("ヒラガナカタカナハンカクガイルhonto", t1.transliterate(transliterateStr));
System.out.println("2:"+t2.transliterate(transliterateStr));
assertEquals("ひらがなかたかなはんかくがいるhonto", t2.transliterate(transliterateStr));
System.out.println("3:"+t3.transliterate(transliterateStr));
assertEquals("ひらがなかたかなはんかくがいるhonto", t3.transliterate(transliterateStr));
System.out.println("4:"+t4.transliterate(transliterateStr));
assertEquals("ひらがなkatakanahankakuka゛iruhonto", t4.transliterate(transliterateStr));
System.out.println("5:"+t5.transliterate(transliterateStr));
assertEquals("hiraganaカタカナハンカクガイルhonto", t5.transliterate(transliterateStr));
System.out.println("6:"+t6.transliterate(transliterateStr));
assertEquals("ひらがなカタカナハンカクガイルhonto", t6.transliterate(transliterateStr));
System.out.println("7:"+t7.transliterate(transliterateStr));
assertEquals("ひらがなカタカナハンカクガイルhonto", t7.transliterate(transliterateStr));
System.out.println("8:"+t8.transliterate(transliterateStr));
assertEquals("ひらがなカタカナハンカクガイルほんと", t8.transliterate(transliterateStr));
System.out.println("9:"+t9.transliterate(transliterateStr));
assertEquals("ひらがなカタカナハンカクガイルホント", t9.transliterate(transliterateStr));
}

上に書いたやつの真下に書いてみたらここは一瞬で終わった
続けて時間を試したんだけど、JapaneseCalendarはクラスがDeprecatedなのでどうしたものかと・・・他に使える物もないし(T.T)
今回の情報源は
OZACC.blog: 続・ICU4J