java汉字获取首字母

原文链接:java汉字获取首字母 - 走看看 

前言

在项目中很多时候我们需要获取姓名或者名称的首字母或者全拼,以用于模糊查询或者字母查询,在这里分享一个实例;供小伙伴们参考。

导入jar包


  com.belerweb
  pinyin4j
  2.5.0

代码


package com.xxxx.util;

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 获取首字母工具
 *
 * @author 
 * @Date 
 */
public class ChineseCharacterUtil {

    /**
     *  获取汉字首字母或全拼大写字母
     *
     * @param chinese 汉字
     * @param isFull  是否全拼 true:表示全拼 false表示:首字母
     *
     * @return 全拼或者首字母大写字符窜
     */
    public static String getUpperCase(String chinese,boolean isFull){
        return convertHanzi2Pinyin(chinese,isFull).toUpperCase();
    }

    /**
     * 获取汉字首字母或全拼小写字母
     *
     * @param chinese 汉字
     * @param isFull 是否全拼 true:表示全拼 false表示:首字母
     *
     * @return 全拼或者首字母小写字符窜
     */
    public static  String getLowerCase(String chinese,boolean isFull){
        return convertHanzi2Pinyin(chinese,isFull).toLowerCase();
    }

    /**
     * 将汉字转成拼音
     * 

* 取首字母或全拼 * * @param hanzi 汉字字符串 * @param isFull 是否全拼 true:表示全拼 false表示:首字母 * * @return 拼音 */ private static String convertHanzi2Pinyin(String hanzi,boolean isFull){ /*** * ^[u2E80-u9FFF]+$ 匹配所有东亚区的语言 * ^[u4E00-u9FFF]+$ 匹配简体和繁体 * ^[u4E00-u9FA5]+$ 匹配简体 */ String regExp="^[u4E00-u9FFF]+$"; StringBuffer sb=new StringBuffer(); if(hanzi==null||"".equals(hanzi.trim())){ return ""; } String pinyin=""; for(int i=0;i * 根据字符和正则表达式进行匹配 * * @param str 源字符串 * @param regex 正则表达式 * * @return true:匹配成功 false:匹配失败 */ private static boolean match(String str,String regex){ Pattern pattern=Pattern.compile(regex); Matcher matcher=pattern.matcher(str); return matcher.find(); } /** * 测试方法 */ public static void main(String[] args) { System.out.println(convertHanzi2Pinyin("弗格森的广东省",false).toUpperCase()); } }

你可能感兴趣的:(java基础,java,servlet,开发语言)