String str = "安全 safe";
if(str.indexOf("[\\u4e00-\\u9fa5]") != -1)
{
    return true;
}判断字符串中是否含有中文,这么写怎么不对?

解决方案 »

  1.   

    得一个字符一个字符判断吧public class Test1 {
    public static void main(String[] args) throws Exception {
    String aa = "中国China人";
    for (int i = 0; i < aa.length(); i++) {
    String bb = aa.substring(i, i + 1);
    boolean cc = java.util.regex.Pattern.matches("[\u4E00-\u9FA5]", bb);
    if (cc) {
    System.out.println("此字符串含有中文...");
    break;
    }
    }
    }
    }
      

  2.   

    楼上正解public static boolean checkStr() {
    String str = "安全 safe";
    char[] charArray = str.toCharArray();
    for (Character c : charArray) {
    int length = String.valueOf(c).getBytes().length;
    if (length > 1) {
    return true;
    }
    }
    return false;
    }
      

  3.   

    2楼正解
    package com.meritit.test;public class TestChart {
     public static void main(String[] args) throws Exception {
            String aa = "中国China人";
            for (int i = 0; i < aa.length(); i++) {
                String bb = aa.substring(i, i + 1);
                boolean cc = java.util.regex.Pattern.matches("[\u4E00-\u9FA5]", bb);
                if (cc) {
                    System.out.println(bb);
                }
            }
     }
    }输出结果中


      

  4.   

    indexOf接收的参数是个普通字符串,不是正则表达式,查查API就知道了
      

  5.   


    哎呀,低级错误啊....好久没编程,上来也没看API