从字符串中获取数字、字母、中文或者过滤数字、字母、中文

在项目或者日常编码中,经常遇到要从一个字符串中获取数字、字母、中文的场景,也经常遇到只保留字符串中数字、字母、中文的场景。
比较简便常用的方法是使用正则表达式替换。
鉴于经常使用,遂整理成Util类。废话不多说,如下:
package com.topcheer.util;


public class FilterStrUtil {

    /**
     * 只保留字母,过滤掉非字母
     * @param alphabet
     * @return
     * @author cchang
     * 2016-12-2 22:57:13
     */
    public static String getAlphabet(String alphabet) {
        alphabet = alphabet.replaceAll("[^(A-Za-z)]", "");
        return alphabet;
    }

    /**
     * 只保留数字,过滤掉非数字
     * @param number
     * @return
     * @author cchang
     * 2016-12-2 23:00:49
     */
    public static String getNumber(String number) {
        number = number.replaceAll("[^(0-9)]", "");
        return number;
    }


    /**
     * 只保留中文,过滤掉非中文
     * @param chinese
     * @return
     * @author cchang
     * 2016-12-2 23:03:29
     */
    public static String getChinese(String chinese) {
        chinese = chinese.replaceAll("[^(\\u4e00-\\u9fa5)]", "");
        return chinese;
    }

    /**
     * 只保留字母、数字、中文
     * @param character
     * @return
     * @author cchang
     * 2016-12-2 23:06:20
     */
    public static String getAll(String character) {
        character = character.replaceAll("[^(a-zA-Z0-9\\u4e00-\\u9fa5)]", "");
        return character;
    }

    /*******************************上面是取出字母、数字、中文,下面是过滤掉字母、数字、中文****************************************/

    /**
     * 过滤掉数字
     * @param digital
     * @return
     * @author cchang
     * 2016-12-2 23:06:40
     */
    public static String filterDigital(String digital) {
        return digital.replaceAll("[0-9]", "");
    }

    /**
     * 过滤掉字母
     * @param character
     * @return
     * @author cchang
     * 2016-12-2 23:08:14
     */
    public static String filterAlphabet(String alphabet) {
        return alphabet.replaceAll("[A-Za-z]", "");
    }

    /**
     * 过滤掉中文
     * @param chin
     * @return
     * @author cchang
     * 2016-12-2 23:09:05
     */
    public static String filterChinese(String chin) {
        return chin.replaceAll("[\\u4e00-\\u9fa5]", "");
    }

    /**
     * 过滤掉字母、数字、中文
     * @param character
     * @return
     * @author cchang
     * 2016-12-2 23:09:46
     */
    public static String filterAll(String character) {
        return character.replaceAll("[a-zA-Z0-9\\u4e00-\\u9fa5]", "");
    }

    /**
     * main方法:测试
     * @param args
     * @author cchang
     * 2016-12-2 23:10:27
     */
    public static void main(String[] args) {
        String aa = "苍白术各12g";
        System.out.println(getAlphabet(aa));///结果:苍白术各
        System.out.println(getChinese(aa));///结果:g
        System.out.println(getNumber((aa)));///结果:12

        System.out.println(filterDigital("123abc唐长老"));///结果:123唐长老
        System.out.println(filterAlphabet("123abc唐长老"));///结果:abc唐长老
        System.out.println(filterChinese("123abc唐长老"));///结果:123abc
        System.out.println(filterAll("123abc唐长老*&"));///结果:*&


    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值