Android之字符串判断中文、英文 和 数字

检测一个字符时:

    /**
     * 验证单个汉字,多个就会输出不是汉字
     *
     * @param text
     */
    private void validate(String text) {
        if (text.length() == 1) {
            Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
            Matcher m = p.matcher(text);
            if (m.matches()) {
                Toast.makeText(this, "输入是汉字!", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(this, "输入的值不是汉字", Toast.LENGTH_SHORT).show();
            }
        } else {
            Toast.makeText(this, "只能输入一个值", Toast.LENGTH_SHORT).show();
        }
    }

检测多个字符的方法:

/**
     * 验证 是否 含有汉字
     *
     * @param text
     */
    private void validate2(String text) {
        Log.i("info input text:", text);
        if (isChinese(text)) {
            Toast.makeText(this, "含有中文", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(this, "输入值未含有中文", Toast.LENGTH_SHORT).show();
        }
    }

    /**
     * 判断一个字符串是否含有中文
     */
    public boolean isChinese(String str) {
        if (str == null)
            return false;
        for (char c : str.toCharArray()) {
            if (isChineseChar(c))
                return true;// 有一个中文字符就返回
        }
        return false;
    }

    // 判断一个字符是否是中文
    public boolean isChineseChar(char c) {
        return c >= 0x4E00 && c <= 0x9FA5;// 根据字节码判断
    }

检测多个字符的另一种方法:     

/**
     * 检查是否包含汉字
     *
     * @param text
     */
    private void validate3(String text) {
        if (isHasChinese(text)) {
            Toast.makeText(this, "输入值含有汉字!", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(this, "没有汉字", Toast.LENGTH_SHORT).show();
        }
    }

    /**
     * 是否包括中文
     *
     * @param content
     * @return
     */
    public static boolean isHasChinese(String content) {
        String regEx = "[\u4e00-\u9fa5]";
        Pattern pattern = Pattern.compile(regEx);
        Matcher matcher = pattern.matcher(content);
        while (matcher.find()) {
            return true;
        }
        return false;
    }

检测多个字符  会否含有连续的几个中文:

    /**
     * 是否含有连续的几个中文
     * @param content 内容
     * @param count 数量
     * @return
     */
    public static boolean isHasContinuousChinese(String content,int count) {
        String regEx = "[\u4e00-\u9fa5]";
        for(int i = 0; i < count - 1; i++) {
            regEx += regEx;
        }
        Pattern pattern = Pattern.compile(regEx);
        Matcher matcher = pattern.matcher(content);
        while(matcher.find()) {
            return true;
        }
        return false;
    }

检测字符串里 中文的数量:

    /**
     * 得到字符串里中文的数量
     * @param content
     * @return
     */
    public static int getChineseCount(String content) {
        int count = 0;
        String regEx = "[\u4e00-\u9fa5]";
        Pattern pattern = Pattern.compile(regEx);
        Matcher matcher = pattern.matcher(content);
        while(matcher.find()) {
            count ++;
        }
        return count;
    }

检测输入的字符是否英文

    /**
     * 验证值,是否是英文
     *
     * @param text
     */
    private void validateEn(String text) {
        Pattern p = Pattern.compile("[a-zA-Z]+");
        Matcher m = p.matcher(text);
        if (m.matches()) {
            Toast.makeText(this, "输入的值是英文", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(this, "输入的值中含有非英文字母", Toast.LENGTH_SHORT).show();
        }
    }

检测输入的字符串中是否包含英文字母:

    /**
     * 判断是否包含英文字母
     *
     * @param str
     * @return
     */
    public boolean containEnglishLetters(String str) {
        String regex = ".*[a-zA-Z]+.*";
        Matcher m = Pattern.compile(regex).matcher(str);
        if (m.matches()){
            Toast.makeText(this, "输入的值包含英文字母", Toast.LENGTH_SHORT).show();
        }else {
            Toast.makeText(this, "输入的值中不包含英文字母", Toast.LENGTH_SHORT).show();
        }
        return m.matches();
    }

检测输入的值是否为数字

    /**
     * 判断输入的值是否数字
     * @param text
     */
    private void validateNum(String text) {
        Pattern p = Pattern.compile("[0-9]*");
        Matcher m = p.matcher(text);
        if (m.matches()) {
            Toast.makeText(this, "输入是数字!", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(this, "输入的值中含有非数字", Toast.LENGTH_SHORT).show();
        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值