汉字拼音"/>
java获取汉字拼音
前段时间做的中文验证码识别,里面有个需要给出某个汉字的拼音,这方法主要也是通过查表给出。
下图是表中的一部分截图,其中前面是汉字的unicode十六进制编码,后面即为拼音(多音字有多个拼音对应),所以原理很简单,查找表中匹配的编码即可。这是资源链接
源码如下
public String getPinYin(char word){String pinyin = null;byte[] bytes = (String.valueOf(word)).getBytes();if (bytes == null || bytes.length > 2 || bytes.length <= 0) {// 错误引用,非合法字符return null;}if (bytes.length == 1) {// 英文字符return null;}if (bytes.length == 2) {//中文字符//得到字符的unicode十六进制编码,并转为大写String wordCode = Integer.toHexString(String.valueOf(word).codePointAt(0)).toUpperCase();; String pattern = "^"+wordCode+"\\s*([A-Z]+)"; //多音字只匹配第一个拼音// 创建 Pattern 对象Pattern r = Patternpile(pattern);File file=new File("Mandarin.dat"); //此中的mandarin.dat即为查表文件BufferedReader br;try {br = new BufferedReader(new FileReader(file));String temp=null;while((temp=br.readLine())!=null){Matcher m = r.matcher(temp);if (m.find( )) { pinyin = m.group(1);}}br.close();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}return pinyin;}
更多推荐
java获取汉字拼音
发布评论