public static boolean isASCII(String str){
boolean ret = true;
char tch;
int tint;
for(int i = 0; i < str.length(); i++){
tch = str.charAt(i);
tint = (int)tch;
if(tint > 255){
ret = false;
break;
}
}
return ret; 
}
这样对吗?

解决方案 »

  1.   

    还可以改一下, 不是立刻就返回FALSE, 不用再判断.
    public static boolean isASCII(String str){
    char tch;
    int tint;
    for(int i = 0; i < str.length(); i++){
    tch = str.charAt(i);
    tint = (int)tch;
    if(tint > 255){
    return false;
    }
    }
    return true; 
    }
      

  2.   

    function isASCII(str) {
        if (str == null || str==''){
            return false;
        } else {
            var strlen = str.length;
            var i = 0;
            for (i=0;i < strlen;i++) {
                if (str.substring(i,i+1) >= 'a' && str.substring(i,i+1) <= 'z') continue;
                if (str.substring(i,i+1) >= 'A' && str.substring(i,i+1) <= 'Z') continue;
                if (str.substring(i,i+1) >= '0' && str.substring(i,i+1) <= '9') continue;
                if (str.substring(i,i+1) == '_' ) continue;
                return false;
            }
        }   
        return true;
    }
      

  3.   

    道理忒简单,AscII码占一个字节,UNICode占两个字节,不知对否