⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chinesetools.java

📁 中文拼音首字母转换
💻 JAVA
字号:
package com.boco.excel.app;

/**  
 * 汉字转换为拼音字头的工具类  
 *文件名:ChineseTools.java<br>  
 *@author 董利伟<br>  
 *版本:<br>  
 *描述:<br>  
 *创建时间:2008-10-7 下午10:39:27<br>  
 *文件描述:<br>  
 *修改者:<br>  
 *修改日期:<br>  
 *修改描述:<br>  
 */  
public class ChineseTools {   
  /**  
   * 存放国标一级汉字不同读音的起始区位码  
   */  
  static final int[] secPosValueList = {   
      1601, 1637, 1833, 2078, 2274, 2302, 2433, 2594, 2787, 3106, 3212, 3472,   
      3635, 3722, 3730, 3858, 4027, 4086, 4390, 4558, 4684, 4925, 5249, 9999};   
  
  /**  
   * 存放国标一级汉字不同读音的起始区位码对应读音  
   */  
  static final char[] firstLetter = {   
      'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'o', 'p',   
      'q', 'r', 's', 't', 'w', 'x', 'y', 'z'};   
  
  /**  
   * 获取一个字符串的拼音码  
   * @param oriStr  
   * @return  
   */  
  public static String getFirstLetter(String oriStr) {   
      return getFirstLetter(oriStr,0);   
  }   
  
  /**  
   * 获取一个字符串的拼音码  
   * @param oriStr  
   * @param scale 返回的拼音字头的位数  
   * @return  
   */  
  public static String getFirstLetter(String oriStr,int scale) {   
    String str = oriStr.toLowerCase();   
    StringBuffer buffer = new StringBuffer();   
    char ch;   
    char[] temp;   
    for (int i = 0; i < str.length(); i++) {   
      //依次处理str中每个字符   
      ch = str.charAt(i);   
      temp = new char[] {   
          ch};   
      byte[] uniCode = new String(temp).getBytes();   
      if (uniCode[0] < 128 && uniCode[0] > 0) {   
        // 非汉字   
        buffer.append(temp);   
      }   
      else {   
        buffer.append(convert(uniCode));   
      }   
    }   
    if(buffer.toString().length()<scale||scale==0) {   
      return buffer.toString().toUpperCase();   
    }   
    else {   
      return buffer.toString().substring(0,scale).toUpperCase();   
    }   
  }   
  
  /**  
   * 获取一个汉字的拼音首字母  
   * @param bytes  
   * @return  
   */  
  static char convert(byte[] bytes) {   
    char result = '-';   
    int secPosValue = 0;   
    int i;   
    for (i = 0; i < bytes.length; i++) {   
      bytes[i] -= 160;   
    }   
    secPosValue = bytes[0] * 100 + bytes[1];   
    for (i = 0; i < 23; i++) {   
      if (secPosValue >= secPosValueList[i] &&   
          secPosValue < secPosValueList[i + 1]) {   
        result = firstLetter[i];   
        break;   
      }   
    }   
    return result;   
  }   
  
  /**  
   *  
   * @param args  
   */  
  public static void main(String[] args) {   
  
//      System.out.println(ChineseTools.getFirstLetter("I love u"));   
//      System.out.println(ChineseTools.getFirstLetter("我爱北京天安门"));   
//      System.out.println(ChineseTools.getFirstLetter("I love 北京天安门"));   
    System.out.println(ChineseTools.getFirstLetter("鲁文明"));   
  }   
  
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -