[\u4e00-\u9fa5]匹配中文无效果

一直都在你身后 一直都在你身后 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
代码如下:
package opratestring;

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

public class CountChar01 {
public static void main(String[] args) {
String instr = "hdsGH卡死减肥v1243556jsvj三大势力93463";
HandleChar handle = new HandleChar(instr);
handle.handle();
}

}

class HandleChar{
private String name ;
private int chinese;//统计中文数量
private int english;//统计英文数量
private int number;//统计数字数量

public HandleChar(String instr){
this.name = instr;
}

public void handle(){
char[] charr = name.toCharArray();
System.out.println(Arrays.toString(charr));
String oneword;
for(int i=0;i<charr.length;i++){
oneword = String.valueOf(charr[i]);
Pattern patnumber = Pattern.compile("^[0-9]*$");
Matcher matnumber = patnumber.matcher(oneword);
if(matnumber.find()){
number++;
}
Pattern patenglish = Pattern.compile("^[a-zA-Z]*$");
Matcher matenglish = patenglish.matcher(oneword);
if(matenglish.find()){
english++;
}
Pattern patchinese = Pattern.compile("^[\u4e00-\u9fa5]+$");
Matcher matchinese = patchinese.matcher(oneword);
if(matenglish.find()){
chinese++;
}
}
System.out.println("数字个数:"+number+",英文个数:"+english+",汉字个数:"+chinese);

}

}

运行结果如下:
[h, d, s, G, H, 卡, 死, 减, 肥, v, 1, 2, 4, 3, 5, 5, 6, j, s, v, j, 三, 大, 势, 力, 9, 3, 4, 6, 3]
数字个数:12,英文个数:10,汉字个数:0

不知道社么地方写的有问题,汉字个数一直匹配是0,求大神指教,谢谢
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
一直都在你身后
Java 51,407 成员 86,126 内容