怎么判断String中的字符是中文还是英文

解决方案 »

  1.   

    参考http://topic.csdn.net/t/20020627/13/833916.html
      

  2.   

    简单的一点的方法
    比较str的长度即str.length()和将之转成二进制数组的长度即str.getBytes().length的大小是否相等,因为1个中文在字符串里面长度算1,转换成二进制就占两个字节,所以长度会变大他们之间的差就是中文字符的个数
      

  3.   

    可以获得字符串的字符集 然后判断该字符集是不是CJK
      

  4.   

    String str1 = "eeeee";
    String str2 = "斯蒂芬记的";
    System.out.println(str1.getBytes().length);
    System.out.println(str2.getBytes().length);
      

  5.   

    方法1:用正则判断
    [a-zA-Z0-9]就是英文,其余的都算中文方法2:用字符集判断
    // iso8859-1编码器
    CharToByteISO8859_1 converterISO = new CharToByteISO8859_1();
    // gbk编码器
    CharToByteGBK converterGBK = new CharToByteGBK();
    // 字符数组
    char[] charList = msg.toCharArray();
    // 每个字符占用的字节数
    byte[] charSize = new byte[charList.length];
    // 计算每个字符占用的字节数
    for (int i = 0; i < charList.length; i++)
    {
    if (converterISO.canConvert(charList[i]))
    charSize[i] = 1; // 如果iso8859-1能解析,则占1个字节
    else if (converterGBK.canConvert(charList[i]))
    charSize[i] = 2; // 如果gbk能解析,则占2个字节
    else
    charSize[i] = 4; // 否则当作4字节的GB18030字符
    }
      

  6.   

    to :NCro(NCro) 方法1:用正则判断
    应该是[\u4e00-\u9fa5],不能把日文和韩语那些加进去吧