如何将平假名转换为半角片假名?

时间:2012-06-04 04:59:17

标签: java android unicode localization cjk

我想将平假名字符转换为半角片假名字符。我该如何在Android上执行此操作?

我有代码将平假名转换为片假名,如下所示......

 private char hiraganaTokatakana(String hiraganastring) {

    char hiraganachar = Character.valueOf(hiraganastring.charAt(0));
    // convert char to unicode value
    String hiraganahex = Integer.toHexString(hiraganachar & 0xFFFF);
    // convert unicode to decimal
    int hiraganadecimalNumber = Integer.parseInt(hiraganahex, 16);
    // convert hiragana decimal to katakana decimal
    int katakanadecimalNumber = Integer.valueOf(hiraganadecimalNumber) + 96;
    // covert decimal to unicode value
    String katakanahex = Integer.toString(katakanadecimalNumber, 16);
    // convert unicode to char

    return (char) Integer.parseInt(String.valueOf(katakanahex), 16);
}  

此代码将平假名转换为片假名但是我想将平假名转换为半宽片假名,怎么做?

2 个答案:

答案 0 :(得分:0)

这是在Unicode标准中形式化的,java.text.Normalizer应该能够处理它。我不知道它在Android上的效果如何。这是Java SE教程:http://developer.android.com/reference/java/text/Normalizer.html

答案 1 :(得分:0)

http://mariten.github.io/kanatools-java/en/kana-converter/应该有效:

int conversion_flags = OP_ZEN_HIRA_TO_HAN_KATA;
String output = KanaConverter.convertKana(input, conversion_flags);