此处介绍 commons-lang3 中的字符工具类
CharUtils
常用常量
//换行符 \n
char lf = CharUtils.LF;
is 字符内容判断
//是否是大|小写英文字母
boolean isAsciiAlphaUpper = CharUtils.isAsciiAlphaUpper(ch);
boolean isAsciiAlphaLower = CharUtils.isAsciiAlphaLower(ch);
//是否是英文字母
boolean isAsciiAlpha = CharUtils.isAsciiAlpha(ch);
//是否是阿拉伯数字0~9
boolean isAsciiNumeric = CharUtils.isAsciiNumeric(ch);
//是否是大小写英文字母或阿拉伯数字
boolean isAsciiAlphanumeric = CharUtils.isAsciiAlphanumeric(ch);
to 类型转换
//Character转char
char char3 = CharUtils.toChar(character); //如果Character是null,会抛异常
char char4 = CharUtils.toChar(character, defaultChar); //如果Character是null,返回defaultChar
//char转Character
Character character1 = Character.valueOf(ch); //CharUtils.toCharacterObject()已过时,可以使用包装类自身的方法代替
//String转char
char char1 = CharUtils.toChar(str); //如果String是empty会抛异常
char char2 = CharUtils.toChar(str, defaultChar); //如果String是empty则返回defaultChar
//String转换为Character
Character character2 = CharUtils.toCharacterObject(str); //empty返回null
//char|Character转String
String str = CharUtils.toString(ch | character);
//char|Character转int
int i1 = CharUtils.toIntValue(ch); //如果char不是0~9,会抛异常
int i2 = CharUtils.toIntValue(character); //如果character为null或不是0~9,会抛异常
int i3 = CharUtils.toIntValue(ch, defaultValue); //均可指定默认值,出现上面的异常情况时,返回默认值
int i4 = CharUtils.toIntValue(character, defaultValue);
compare 比较
//比较2个字符的大小,以ASCII码值相减。如果都是char型的0~9,相减结果与数值型一致
int compare = CharUtils.compare(char1, char2);
CharSet
此处的CharSet是commons-lang3中的类,不是java.nio中的类
//大小写英文字母
CharSet charSet1 = CharSet.ASCII_ALPHA;
//大写英文字母
CharSet charSet2 = CharSet.ASCII_ALPHA_UPPER;
//小写英文字母
CharSet charSet3 = CharSet.ASCII_ALPHA_LOWER;
//阿拉伯数字0~9
CharSet charSet4 = CharSet.ASCII_NUMERIC;
/*
自定义字符集,参数个数不定,是这些参数组成的并集
1、可以指定具体字符,eg."abc"
2、可以使用以下特殊符号
- 范围,eg."0-9"
^ 除开,eg."^a" a之外的任意字符,"^a-z" 小些字母之外的任意字符
3、可以搭配使用,eg."ABCG-Z" ABC、G-Z
*/
CharSet charSet5 = CharSet.getInstance("abc", "0-9", "ABCG-Z");
//判断字符集中是否包含指定字符(指定字符是否在字符集中)
boolean b1 = charSet5.contains('9');
boolean b2 = charSet5.contains('中');
CharSetUtils
第二个参数指定字符集,参数个数不定,可以现写字符集,也可以使用预定义常量的toString(),eg. CharSet.ASCII_ALPHA.toString()
//是否包含字符集中的字符,只要包含一个即可
boolean b = CharSetUtils.containsAny(str, "a-z", "0-9");
//统计字符集中字符的出现次数,eg. aa1b2 => 3
int count = CharSetUtils.count(str, "a-z", "0-9");
//移除字符集中包含的字符, eg. a1b2c3d => 123
String delete = CharSetUtils.delete(str, "a-z", "0-9");
//只保留字符集中的字符 eg. a1b2c3d => abcd
String keep = CharSetUtils.keep(str, "a-z", "0-9");
//剔除 字符集中包含的 && 连续重复的 多余字符,eg. aaabcbd => abcbd
String squeeze = CharSetUtils.squeeze(str, "a-z", "0-9");