Java实用程序片段

1.匹配中文字符集

String str = "测";
String regEx = "^[\u4e00-\u9fa5]$"; // 匹配单个汉字
Pattern pattern = Pattern.compile(regEx); // 编译正则表达式
Matcher matcher = pattern.matcher(str); // 生成一个给定命名的Matcher对象
boolean result = matcher.find(); // 查找下一个匹配子串
if (result) {
System.out.println("此为汉字");
} else {
System.out.println("不是汉字");
}


2.将字符串中的汉字转换成拼音(需要三方库pinyin4j)

public class RegEx {
public static void main(String args[]) {
System.out.println(covert2PinYin("Hi.徐.brook!"));

}


//判断字符串中是否包含中文字符
public static boolean hasChineseChar(String str) {
String regEx = "[\u4e00-\u9fa5]+"; //匹配一个或多个汉字,任何位置
Pattern pattern = Pattern.compile(regEx);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.group()); //输出第一个被匹配到得字符串
return true;
}
return false;
}


//取得匹配的中文字符串,并依次添加到List中
public static void getChineseGroup(String str,List<String> list) {
String regEx = "[\u4e00-\u9fa5]+"; //匹配一个或多个汉字,任何位置
Pattern pattern = Pattern.compile(regEx);
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
list.add(matcher.group());
}
}

//把字符串中的中文字符转换成拼音
public static String covert2PinYin(String str){
String newStr = str;
List<String> chineseGroupList = new ArrayList<String>();
List<String> pinYinGroupList = new ArrayList<String>();
getChineseGroup(str,chineseGroupList);
for(String strGroup: chineseGroupList){
pinYinGroupList.add(HanZi2PinYin(strGroup));
}

for(int i= 0 ;i<chineseGroupList.size();i++){
newStr = newStr.replace(chineseGroupList.get(i), pinYinGroupList.get(i));
}

return newStr;
}

//匹配想要的字符串
public static Boolean match(String regex, String str) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
return matcher.matches();
}


//把汉字转换成拼音,字符串必须全为汉字
public static String HanZi2PinYin(String hanzi) {
CharSequence s = hanzi.trim();

char[] hanzhi = new char[s.length()];
for (int i = 0; i < s.length(); i++) {
hanzhi[i] = s.charAt(i);
}

char[] t1 = hanzhi;
String[] t2 = new String[s.length()];
/** */
/**
* 设置输出格式
*/
HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
t3.setVCharType(HanyuPinyinVCharType.WITH_V);

int t0 = t1.length;
String py = "";
try {
for (int i = 0; i < t0; i++) {
t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
py = py + t2[0].toString();
}
} catch (BadHanyuPinyinOutputFormatCombination e1) {
e1.printStackTrace();
}

return py.trim();

}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值