Este artigo descreve o uso de caracteres chineses para Pinyin4J em Java. Compartilhe -o para sua referência, como segue:
A conversão de caracteres chineses em Pinyin é um problema muito comum no desenvolvimento diário. Por exemplo, em nosso Great 12306, se você entrar "WH" no nome do local, verá nomes de lugares como "Wuhan", "Wuhu" e "Weihai", e se você entrar "Wuhu", verá "Wuhu".
Java obtém o pinyin dos caracteres chineses, e a biblioteca Pinyin4J pode resolver bem esse problema.
Endereço para download: http://sourceforge.net/projects/pinyin4j/
Faça o download e descompacte, existe um Pinyin4J-2.5.0.jar dentro, basta usar esta biblioteca.
Caracteres chineses para Pinyin:
A cópia do código é a seguinte: String [] pinyin = pinyinhelper.tohanyupinyinstringArray ('re-re-re-re-);
A linha de código acima é converter um único caractere chinês em um pinyin, como a palavra "pesado", que retorna uma matriz do tipo de string:
"Zhong4"
"Chong2"
"金" é um caractere polifônico, e a matriz de retorno deste método contém o pinyin de todas as pronúncias desse caractere. O último número de cada pronúncia é o tom (o primeiro, segundo, terceiro, quarto, sem necessidade de explicar isso).
O exposto acima é a maneira mais fácil de conseguir um único personagem chinês. Você também pode usar o HanyUpinyInOutputFormat para formatar o formato que retorna o pinyin.
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();// UPPERCASE: uppercase (ZHONG)// LOWERCASE: lowercase (zhong)format.setCaseType(HanyuPinyinCaseType.LOWERCASE);// WITHOUT_TONE: no phonetic symbol (zhong)// WITH_TONE_NUMBER: 1-4 numbers represent British standard (zhong4) // with_tone_mark: use símbolos fonéticos diretamente (com_u_unicode deve ser usado de outra forma anormal) (zhòng) format.settoneType (hanyupinyIntoneType.with_tone_mark); // with_v: use v para representar ü (nv) // com_tone_u); With_u_unicode: use ü (nü) formato.setvChartype (hanyupinyInvChartype.with_u_unicode); string [] pinyin = Pinyinhelper.tohanyupinyInstringArray ('re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-rehany re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-r e-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re Re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-rere formato); TohanyUpinyInstringArray Se o caractere passado não for um caractere chinês e não puder ser convertido em pinyin, ele retornará diretamente nulo.Embora o Pinyin4J seja muito útil, ele ainda tem limitações. O código acima pode obter apenas o pinyin de um único caractere chinês, mas não pode obter o pinyin de uma palavra contendo caracteres polifônicos. Por exemplo, "Chongqing", é impossível determinar se é "chongqing" ou "zhongqing", e o pinyin4j não pode julgar a pronúncia de caracteres polifônicos através do contexto.
Portanto, ao obter a pronúncia de uma palavra contendo caracteres polifônicos, você pode retornar a uma lista e a pronúncia correta só pode ser julgada e selecionada manualmente.
Espero que este artigo seja útil para a programação Java de todos.