情景一:根据正则表达式,统计字符串中汉字的数目,不包含中文标点
/***
* 统计字符串中汉字的数目,不包含中文标点
* @param str
* @return
*/
public static int countChinese(String str) {
int count = 0;
Pattern p = Pattern.compile("[\\u4e00-\\u9fa5]");//unicode的中文编码表,第一个“4e00”,最后一个“9fa5”
Matcher m = p.matcher(str);
while(m.find()){
count++;
}
return count;
}
情景二:统计字符串中数字的数目
/***
* 统计字符串中数字的数目
* @param str
* @return
*/
public static int countNumber(String str) {
int count = 0;
Pattern p = Pattern.compile("\\d");
Matcher m = p.matcher(str);
while(m.find()){
count++;
}
return count;
}
情景三:统计字符串中汉字和数字的数目
/***
* 统计字符串中汉字和数字的数目
* @param str
* @return
*/
public static int CountsChineseAndNumber(String str){
int count = 0;
Pattern p = Pattern.compile("[0-9\\u4e00-\\u9fa5]");//unicode的中文编码表,第一个“4e00”,最后一个“9fa5”
Matcher m = p.matcher(str);
while(m.find()){
count++;
}
return count;
}
情景四:判断字符串中是否包含汉字或者数字
/***
* 判断字符串中是否含有汉字或者数字
* @param str
* @return
*/
public static boolean HasChineseOrNumber(String str){
Pattern p = Pattern.compile("[0-9\\u4e00-\\u9fa5]");
Matcher m = p.matcher(str);
while(m.find()){
return true;
}
return false;
}
当字符串转语音时需要进行判断,若字符串中包含汉字或者数字则正常转化,若否则需要弹出提示。
参考博客:
https://blog.csdn.net/zhanghan18333611647/article/details/80038629