利用pingYin4j进行来中文和拼音的切换实现搜索功能的效率

当我们进行淘宝搜索时我们经常会忘记切换中文和英文来进行输入,导致在搜索时直接输入汉语拼音,在项目应用中我们使用了一种开源pinyin4j的java库可以直接对自己所要输入的内容进行搜索
http://www.oschina.net/p/pinyin4j这个是期源码地址

现在我们引入这个jar包进行写工具类希望大家可以参考
public class PinyinUtil {

//
private final static HanyuPinyinOutputFormat format=new HanyuPinyinOutputFormat();

static 
{
    format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
    format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
    format.setVCharType(HanyuPinyinVCharType.WITH_V);
}
//输入拼音进行判断其中文
public static  String str2Pinyin(String str,String fill)
{

    try {
        StringBuffer sb=new StringBuffer();
        //判断是中文
        boolean isCn=true;
        if(fill==null)
        {
            fill=" ";
        }

        for(int i=0;i0&&isCn)
            {
                sb.append(fill);

            }
            if(c>='\u4e00'&&i<='\u9fa5')
            {

                isCn=true;
                sb.append(PinyinHelper.toHanyuPinyinStringArray(c, format)[0]);

            }
            else
            {
                //不是中文
                if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
                    sb.append(c);
                isCn=false;

            }


        }

        return sb.toString();
    } catch (Exception  e) {
        e.printStackTrace();
    }
    return null;
}

public static  String strFirst2Pinyin(String str)
{

    try {
        StringBuffer sb=new StringBuffer();
        //判断是中文


        for(int i=0;i='\u4e00'&&i<='\u9fa5')
            {


                sb.append(PinyinHelper.toHanyuPinyinStringArray(c, format)[0]).charAt(0);

            }
            else
            {

            }

        }

        return sb.toString();
    } catch (Exception  e) {
        e.printStackTrace();
    }
    return null;
}

}

如果有错还望指出,谢谢

你可能感兴趣的:(javaweb学习)