/**Regex**/
String regex = "[\u4e00-\u9fa5]";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher("测试");
boolean isMatched = matcher.matches();
System.out.println(isMatched);
为什么输出的是false?只用一个汉字的时候输出的是true.怎样才能够匹配全部都是中文?
调试欢乐多
楼主【igogo007】截止到2008-07-29 17:04:47的历史汇总数据(不包括此帖):
发帖的总数量:0 发帖的总分数:0 每贴平均分数:0
回帖的总数量:0 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:---------------------结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=igogo007
http://topic.csdn.net/u/20080728/11/478288d3-f383-459e-9285-c41b35e3188a.html
看有没有更好的方法..
String regex = "[\u4e00-\u9fa5]";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher("测试");
boolean isMatched = matcher.find();
System.out.println(isMatched);
2.匹配是否全部为汉字: String regex = "[\u4e00-\u9fa5]*";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher("测试");
boolean isMatched = matcher.matches();
System.out.println(isMatched);
String regex = "[\u4e00-\u9fa5]*";* 是数量词,表示0个或多个另外还要注意matcher.matches();该方法就是对字符串进行全部匹配所有表达式就不要再加^ $
* 将GBK转化为ISO-8859-1
*
* @param para
* @return
*/
public static String gbkToIso(String str) {
try {
return new String(str.getBytes("GBK"), "ISO-8859-1");
} catch (UnsupportedEncodingException e) {
return "";
} catch (Exception e) {
return "";
}
} /**
* 判断字符串中是否有中文
*
* @param str
* @return
*/
public static boolean isContainChinaStr(String str) {
if (str == null || str.length() == gbkToIso(str).length())
return false;
return true;
}