汉字首字母转换
?
说到编程用存储用汉字,这个在中国是很普遍的事情。
但是有的时候用汉字存储能给我们带来方便,直观,但是在功能设计上会遇到一些弊病。
?
设想一个事例:
平常存储东西的时候都是大家把东西名字存储进数据库,但是在有的场合,我们需要商品按名称首字母查询,就像英语一样。这个时候我开始的做法可能会在数据库新增加一列,用来存储汉语拼音,这个代价,工作量如果还是一个未知,特别不能修改数据库时候,也是一大麻烦。
?
今天无意发现一个东东能解决这个问题,虽然这个估计大家都有讨论和实践过,再次炒下冷饭。
?
pinyin4j 这个是专门转化汉语拼音的JAR。
?
现在我来演示一下。
?
public static String getPinYinHeadChar(String str) {String convert = "";for (int j = 0; j < str.length(); j++) {//提取每一个汉字 !Char能存储汉字 这个是Java基础哦。char word = str.charAt(j);// 提取汉字的首字母String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);if (pinyinArray != null) {//如果是汉字能提取当前首字母convert += pinyinArray[0].charAt(0);} else {//如果不是汉字 非汉字类型 英语类型 不用转换convert += word;}}return convert;}?