在项目或者日常编码中,经常遇到要从一个字符串中获取数字、字母、中文的场景,也经常遇到只保留字符串中数字、字母、中文的场景。
比较简便常用的方法是使用正则表达式替换。
鉴于经常使用,遂整理成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));
System.out.println(getNumber((aa)));
System.out.println(filterDigital("123abc唐长老"));
System.out.println(filterAlphabet("123abc唐长老"));
System.out.println(filterChinese("123abc唐长老"));
System.out.println(filterAll("123abc唐长老*&"));
}
}