content: package jnpf.util;
  
  import net.sourceforge.pinyin4j.PinyinHelper;
  import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
  import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
  import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
  import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
  import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
  
  /**
   *
   * @author JNPF开发平台组
   * @version V3.1.0
   * @copyright 引迈信息技术有限公司
   * @date 2021/3/16 10:51
   */
  public class PinYinUtil {
  	/**
  	 * 将字符串中的中文转化为拼音,其他字符不变
  	 *
  	 * @param inputString
  	 * @return
  	 */
  	public static String getPingYin(String inputString) {
  		HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
  		format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
  		format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
  		format.setVCharType(HanyuPinyinVCharType.WITH_V);
  		char[] input = inputString.trim().toCharArray();
  		String output = "";
  		try {
  			for (int i = 0; i < input.length; i++) {
  				if (Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) {
  					String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);
  					output += temp[0];
  				} else {
  					output += Character.toString(input[i]);
  				}
  			}
  		} catch (BadHanyuPinyinOutputFormatCombination e) {
  			e.printStackTrace();
  		}
  		return output;
  	}
  
  	/**
  	 * 获取汉字串拼音首字母，英文字符不变
  	 *
  	 * @param chinese
  	 *            汉字串
  	 * @return 汉语拼音首字母
  	 */
  	public static String getFirstSpell(String chinese) {
  		StringBuffer pybf = new StringBuffer();
  		if(chinese==null){
  			return null;
  		}
  		char[] arr = chinese.toCharArray();
  		HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
  		defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
  		defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
  		for (int i = 0; i < arr.length; i++) {
  			if (arr[i] > 128) {
  				try {
  					String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);
  					if (temp != null) {
  						pybf.append(temp[0].charAt(0));
  					}
  				} catch (BadHanyuPinyinOutputFormatCombination e) {
  					e.printStackTrace();
  				}
  			} else {
  				pybf.append(arr[i]);
  			}
  		}
  		return pybf.toString().replaceAll("\\W", "").trim();
  	}
  
  	/**
  	 * 获取汉字串拼音，英文字符不变
  	 *
  	 * @param chinese 汉字串
  	 * @return 汉语拼音
  	 */
  	public static String getFullSpell(String chinese) {
  		StringBuffer pybf = new StringBuffer();
  		char[] arr = chinese.toCharArray();
  		HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
  		defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
  		defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
  		for (int i = 0; i < arr.length; i++) {
  			if (arr[i] > 128) {
  				try {
  					String[] ca = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);
  					String temp = ca==null ? "" : ca[0];
  					if(temp!=null){
  						pybf.append(temp);
  					}
  				} catch (BadHanyuPinyinOutputFormatCombination e) {
  					e.printStackTrace();
  				}
  			} else {
  				pybf.append(arr[i]);
  			}
  		}
  		return pybf.toString();
  	}
  
  }
  