java中匹配字符串中的中文字符(含中文标点的)
16lz
2021-01-22
热敏打印,打印小票时,需要左中右对其,而中文字符和数字及英文字符打印占的位置不同,匹配中文字符时发现网上的教程都不怎么完善,故上传一个。
protected int getChinaNum(String str) {
int amount = 0;// 创建汉字数量计数器
String exp="^[\u4E00-\u9FA5|\\!|\\,|\\。|\\(|\\)|\\《|\\》|\\“|\\”|\\?|\\:|\\;|\\【|\\】]$";
Pattern pattern=Pattern.compile(exp);
for (int i = 0; i < str.length(); i++) {// 遍历字符串每一个字符
char c = str.charAt(i);
Matcher matcher=pattern.matcher(c + "");
if(matcher.matches()) {
amount++;
}
}
return amount;
}
方法和简单,难点就是正则表达式,如有其他字符直接在exp后面添加就好 格式|\\+你想要匹配的字符。
更多相关文章
- Java中字符流和字节流到底有什么区别!!!
- java GBK字符转换成为UTF-8编码字符
- String字符串的应用
- java 正则表达式查找某段字符串中所有小写字母开头的单词并统计
- Javascript 检查字符串是否是数字的几种方法
- Java读取Unicode文件(UTF-8等)时碰到的BOM首字符问题,及处理方法
- Java正则表达式提取字符
- JavaScript替换字符串中最后一个字符
- Java中怎么把字符串数组转为整形数组