zoukankan      html  css  js  c++  java
  • java中判断字符是否为英文字母、中文汉字或者数字

    在java程序中经常需要实现这样几个功能:

    • 判断一个字符的类型到底是数字、字母还是中文汉字
    • 取出一串字符串中的字母或者数字            

    实现这几个功能的方法有很多种,这里记录一下通过比较unicode编码的范围的方式实现

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

       汉字:[0x4e00,0x9fa5] 或  十进制[19968,40869]
         数字:[0x30,0x39] 或   十进制[48, 57] 
         小写字母:[0x61,0x7a] 或  十进制[97, 122]
         大写字母:[0x41,0x5a] 或  十进制[65, 90]

    下面写个例子:取出一串字符串中的英文字母,不区分大小写

    public class test {
    
        public static void main(String[] args) {
    
            String s = "都是A5a12B1b";
    
            char c[] = s.toCharArray();
            byte b[] = new byte[c.length];
    
            for (int i = 0; i < c.length; i++) {
                b[i] = (byte) c[i];
                // 对每一个字符进行判断
                if ((b[i] >= 97 && b[i] <= 122) || (b[i] >= 65 && b[i] <= 90)) {
                    System.out.println(s.substring(i, i + 1) + ":" + b[i]);
                }
            }
    
        }
    }

    使用正则取出字符串中的汉字

    public class test {
    
        public static void main(String[] args) {
    
            int count = 0;
            String s = "都是A5a12B1b";
            String regex = "[u4e00-u9fa5]";
    
            Pattern p = Pattern.compile(regex);
            Matcher m = p.matcher(s);
    
            while (count < s.length()) {
                if (m.find()) {
                    System.out.println(m.group().toString());
                }
                count++;
            }
    
        }
    
    }

  • 相关阅读:
    MySQL 批量删除相同前缀的表
    MySQL 命令登录
    MySQL 密码修改
    谷歌浏览器开发者工具截图
    VIM命令图解
    基于环境变量为多用户配置不同的JDK(win)
    Reddit: 只有独生子女才明白的事
    JSONObject与null
    SpringFramework中重定向
    XML修改节点值
  • 原文地址:https://www.cnblogs.com/lyd447113735/p/8847545.html
Copyright © 2011-2022 走看看