本方法通过pinyin4j这个工具包来实现。
主要流程为先将字符串转换为char[]数组,再循环判断字符是否是汉字,这一步主要使用汉字Unicode编码进行匹配,是汉字则调用pinyin4j中的汉字转拼音接口,不是汉字则不转换,最终将数组遍历完后,把得到的结果拼接,即转换完成。
获取首字母,只需在每次遍历中,取转换结果的首位字符拼接即可。
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;
import java.util.regex.Pattern;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ChineseUtils {
private static final String CHINESE_PATTERN = "[\u4e00-\u9fa5]";
private static Logger logger = LoggerFactory.getLogger(ChineseUtils.class);
/**
* 汉字转换位汉语拼音首字母,英文