欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

Java验证字符串只能是数字和字母_Java判断字符串是字母

程序员文章站 2022-02-22 08:16:36
...

今天在开发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; 
}