java怎么识别一个字符串中有汉字

如题所述

可以使用正则表达式+中文字符编码区间验证一个字符串中是否包含汉字
代码如下:
public static void main(String[] args) {
int count = 0;
String regEx = "[\\u4e00-\\u9fa5]";
//System.out.println(regEx);
String str = "中文fdas ";
//System.out.println(str);
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
while (m.find()) {
for (int i = 0; i <= m.groupCount(); i++) {
count = count + 1;
}
}
System.out.println("共有 " + count + "个 ");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-23
String input = "中文语言fd何as最近几天dafds工作dfds效率不高fdsf番dfsfdsa啊";
String temp = null;
Pattern p = Pattern.compile("[\u4E00-\u9FA5]+");
Matcher m = p.matcher(input);
while (m.find())
{
temp = m.group(0);
System.out.println(temp + ":" + temp.length());
}
第2个回答  2015-06-18
一般来说,找到编号最开头和最后面的汉字,然后用你取得的编号一比较就知道了。
具体是什么汉字可以网上搜索“获取汉字拼音”
第3个回答  推荐于2016-03-20
String str = "test中文汉字";
String regEx = "[//u4e00-//u9fa5]";

/**
* 判断有没有中文
*/
if (str.getBytes().length == str.length()) {
System.out.println("无汉字");
} else {
System.out.println("有汉字");
}

/**
* 如果有则打印出来
*/
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
while (m.find()) {
System.out.print(m.group(0) + "");
}本回答被提问者和网友采纳
第4个回答  2014-01-23
可以用正则表达式!
给你个网址吧
http://www.cnblogs.com/sunzn/archive/2013/07/12/3186518.html