首页 > 编程知识 正文

判断字符串中字符个数,Java统计字符串中每个字符

时间:2023-05-06 16:14:36 阅读:14300 作者:2016

Java判断并总结了一个字符串str中的中文个数,有以下几种方法(全部验证完毕),根据其原理可以判断在什么情况下使用哪个方法。

1、

1 char[] c=str.toCharArray (; 2for(intI=0; i c.length; I )3{4} string len=integer.tobinarystring (c [ I ]; 5if(Len.Length ) )8) 6计数; 7 }

由于一个中文占两个字节,如果一个字符的字节数大于8,就判断为中文。

2,

String regEx='[\u4e00-\u9fa5];

string term=str.replace all (regex,' aa );

count=term.length(-str.length );

[u4e00-u9fa5]是中文Unicode代码范围,用正则表达式的方法,如果字符串中有符合中文正则表达式的字符,则判定为中文,将其替换为两个字符,因此长度差为中文的个数。

3、

String regEx='[u4e00-u9fa5] ';

patternp=pattern.compile(regex );

matcherm=p.matcher(str; while(m.find ) )

{

出局;

}

与第二种方法的原理一样,如果只使用了Pattern类,但Matcher匹配,则表示找到了中文字符。

4,

byte[] bytStr=str.getBytes (;

system.out.println(bytstr; for(intI=0; i bytStr.length; I )

{if(bytstr[I]0)//java中文字符为负字节值

{

出局;

I; //中文字符为2字节

}

}

如上注释所述,中文字符为2字节,中文字符的字节值为负。 用这个方法判断。

5、

String regEx='[^u4e00-u9fa5];

string[]term=str.split(regex; for(intI=0; i term.length; I )

count=count term[i].length (;

还是正则表达式的判断方法。 该正则表达式的含义出现在除中文以外的所有字符的Unicode代码中,除了这些中文字符以外的其他字符,其余都是中文字符,得到的是中文字符串的数据。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。