怎么判断一个字符串中是否包含汉字?

解决方案 »

  1.   

    匹配中文字符的正则表达式: [\u4e00-\u9fa5]
      

  2.   

    不用正则就这个/**
     * 字符串中是否含有中文
     * 
     * @param s
     *            字符串
     * @return
     */
    public static boolean includeChinese(String s) {
    for (int i = 0; i < s.length(); i++) {
    char c = s.charAt(i);
    if (c > 100) {
    return true;
    }
    }
    return false;
    }
      

  3.   

    public static void main(String[] args) {
    Pattern p=Pattern.compile("[\u4e00-\u9fa5]*");
    Matcher m=p.matcher("这是中文");
    System.out.println(m.matches());
    m=p.matcher("this is English");
    System.out.println(m.matches());
    }
      

  4.   

    补充点 
    [\u2E80-\u9FFF]   
    匹配所有东亚区的语言     
    [\u4E00-\u9FFF]   
    匹配简体和繁体     
    [\u4E00-\u9FA5]    
    匹配简体  
      

  5.   

    我说的是包含,如果一个字符串是:"这是aaa中文",打印出的结果还是false
      

  6.   


    中文和英文占的字节大小是不一样的byte[] bytes = str.getBytes("GBK");---GBK中文占2个字符
    如果bytes的长度等于字符窜的长度说明没有中文
      

  7.   


    public static void main(String[] args) {
    Pattern p=Pattern.compile("[\u4e00-\u9fa5]*");
    Matcher m=p.matcher("这是aaa中文");
    if(m.find())
    {
    System.out.println("包含中文!");
    break;
    }else
    {
    System.out.println("不包含中文!");
    }
    }
      

  8.   

    改为非贪婪匹配,只要匹配到一个中文字符即可:
    Pattern p=Pattern.compile("[\u4e00-\u9fa5]+?"); Pattern p=Pattern.compile("[\u4e00-\u9fa5]+?");
    Matcher m=p.matcher("这是aaa中文");
    if(m.find())
    {
    System.out.println("包含中文!"+m.group());

    }else
    {
    System.out.println("不包含中文!");
    }
      

  9.   

    ````你用find()就行了啊···匹配方法就是那个···