[\u4e00-\u9fa5]匹配中文无效果
代码如下:
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,求大神指教,谢谢
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,求大神指教,谢谢
...全文
相关推荐
js判断中文
`[\u4e00-\u9fa5]`表示匹配Unicode编码在`\u4e00`至`\u9fa5`范围内的任何字符,即所有中文字符。`+`表示前面的模式可以出现一次或多次,`.
Python查找文件中包含中文的行方法
*[\u4E00-\u9FA5]+)|([\u4E00-\u9FA5]+.*)', content.decode('utf-8'))```#### Unicode编码由于中文字符使用的是Unicode编码
正则表达式匹配中文-易语言
例如,如果你想匹配一个或多个中文字符,可以使用`[\u4e00-\u9fa5]+`这个模式,其中`\u4e00`到`\u9fa5`是Unicode范围,覆盖了所有常用汉字。
js限制input标签中只能输入中文.docx
中文字符在Unicode编码中的范围是`\u4E00-\u9FA5`。因此,我们可以通过编写一个函数,该函数会在用户输入时实时检查输入的字符是否在这个范围内,并移除不符合条件的字符。
java中判断字段真实长度的实例(中文2个字符,英文1个字符)
在这个实例中,正则表达式"[\u4e00-\u9fa5]"被用来匹配中文字符集,确保能够准确识别字符串中的中文字符。此方法通常比单独检查每个字符的Unicode编码要高效。5.


