2009年02月26日

Javaで、ICUで、文字変換

ICUサイトダウンロードページから、ICU4J(今回は"icu4j-4_0_1.jar")をダウンロードします。

EclipseプロジェクトにICU4JのJarを追加します。で、以下のソースを作成・実行するとICUによる文字変換を体験できます。


import com.ibm.icu.text.*;
import com.ibm.icu.util.*;

public class TestICU {

public static void main(String args[]) {

String src = "AaAアいろはアイウエイウエ";

//全角文字→半角文字に変換
Transliterator trF2H = Transliterator.getInstance("Fullwidth-Halfwidth");
System.out.println(src + "→★(全角文字→半角文字)★→" + trF2H.transliterate(src));

//半角文字→全角文字に変換
Transliterator trH2F = Transliterator.getInstance("Halfwidth-Fullwidth");
System.out.println(src + "→★(半角文字→全角文字)★→" + trH2F.transliterate(src));

//カタカナ→ひらがなに変換
Transliterator trK2H = Transliterator.getInstance("Katakana-Hiragana");
System.out.println(src + "→★(カタカナ→ひらがな)★→" + trK2H.transliterate(src));

//ひらがな→カタカナ変換
Transliterator trH2K = Transliterator.getInstance("Hiragana-Katakana");
System.out.println(src + "→★(ひらがな→カタカナ)★→" + trH2K.transliterate(src));

//ひらがな→ローマ字に変換
Transliterator trH2L = Transliterator.getInstance("Hiragana-Latin");
System.out.println(src + "→★(ひらがな→ローマ字)★→" + trH2L.transliterate(src));

}
}




AaAアいろはアイウエイウエ→★(全角文字→半角文字)★→AaAアいろはアイウエイウエ
AaAアいろはアイウエイウエ→★(半角文字→全角文字)★→AaAアいろはアイウエイウエ
AaAアいろはアイウエイウエ→★(カタカナ→ひらがな)★→AaAあいろはあいうえいうえ
AaAアいろはアイウエイウエ→★(ひらがな→カタカナ)★→AaAアイロハアイウエイウエ
AaAアいろはアイウエイウエ→★(ひらがな→ローマ字)★→AaAアirohaアイウエイウエ

となります。

ちなみに、


import org.apache.commons.collections.EnumerationUtils;

for(Object s : EnumerationUtils.toList(Transliterator.getAvailableIDs()) )
System.out.println(s);


↑で可能な変換のリストを閲覧できます(ただし、commons-collections-3.1.jarが必要)
変換できるリスト
Accents-Any
Any-Accents
Any-Publishing
Arabic-Latin
Armenian-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
Digit-Tone
Fullwidth-Halfwidth
Georgian-Latin
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-Armenian
Latin-Bengali
Latin-Cyrillic
Latin-Devanagari
Latin-Georgian
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-Syriac
Latin-Tamil
Latin-Telugu
Latin-Thaana
Latin-Thai
Malayalam-Bengali
Malayalam-Devanagari
Malayalam-Gujarati
Malayalam-Gurmukhi
Malayalam-Kannada
Malayalam-Latin
Malayalam-Oriya
Malayalam-Tamil
Malayalam-Telugu
NumericPinyin-Latin
NumericPinyin-Pinyin
Oriya-Bengali
Oriya-Devanagari
Oriya-Gujarati
Oriya-Gurmukhi
Oriya-Kannada
Oriya-Latin
Oriya-Malayalam
Oriya-Tamil
Oriya-Telugu
Pinyin-NumericPinyin
Publishing-Any
Simplified-Traditional
Syriac-Latin
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
Thaana-Latin
Thai-Latin
Tone-Digit
Traditional-Simplified
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-Latin
Any-Telugu
Any-Malayalam
Any-Oriya
Any-Gurmukhi
Any-Gujarati
Any-Bengali
Any-Devanagari
Any-Kannada
Any-Tamil
Any-Han
Any-Katakana
Any-Hiragana
Any-Armenian
Any-Cyrillic
Any-Hangul
Any-Arabic
Any-Greek
Any-Greek/UNGEGN
Any-Hebrew
Any-Thai
Any-Syriac
Any-Thaana
Any-Georgian
posted by 台北猫々 at 21:11| Comment(0) | TrackBack(1) | 技術メモ(Java)
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/27239338

この記事へのトラックバック

ヌードCMで話題の戸田恵梨香の過激映像
Excerpt: ヌードCMで話題の戸田恵梨香に、さらに過激な映像があるという
Weblog: ヌードCMで話題の戸田恵梨香の過激映像
Tracked: 2009-02-27 17:49