Java验证字符串只能是数字和字母_Java判断字符串是字母
2017-09-13 16:04:32  By: dwtedx

今天在开发DD记账项目的时候、遇到这么一个问题、就是发现以前的用户注册的时候用户名都是用的中文、这个之前没有预料到、现在想补掉这个问题、自然就涉及到java判断字符串是否为数字或中文或字母、总结了一下几种方法、供大家参考


1、字符方法

各种字符的unicode编码的范围:

* 汉字:[0x4e00,0x9fa5](或十进制[19968,40869])

* 数字:[0x30,0x39](或十进制[48, 57])

*小写字母:[0x61,0x7a](或十进制[97, 122])

* 大写字母:[0x41,0x5a](或十进制[65, 90])

public static boolean isLetterDigitOrChinese(String str) {
    String regex = "^[a-z0-9A-Zu4e00-u9fa5] $";//其他需要,直接修改正则表达式就好
    return str.matches(regex);
}


2、正则

/**
 * 判断该字符串是否为字母和数字
 * @param str
 * @return
 */
public static boolean isNumericOrABC(String str){
    String regEx="[A-Z,a-z,0-9,-]*";
    Pattern pattern = Pattern.compile(regEx);
    return pattern.matcher(str).matches();
}


3、判断是否为汉字

public boolean vd(String str){
  
    char[] chars=str.toCharArray(); 
    boolean isGB2312=false; 
    for(int i=0;i<chars.length;i  ){
                byte[] bytes=("" chars[i]).getBytes(); 
                if(bytes.length==2){ 
                            int[] ints=new int[2]; 
                            ints[0]=bytes[0]& 0xff; 
                            ints[1]=bytes[1]& 0xff; 
                           
  if(ints[0]>=0x81 && ints[0]<=0xFE &&  
ints[1]>=0x40 && ints[1]<=0xFE){ 
                                        isGB2312=true; 
                                        break; 
                            } 
                } 
    } 
    return isGB2312; 
}


若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+