正则妙用,找出字符串的的数字、中文、字母

本文介绍了一种使用Java Pattern类来拆分字符串的方法,分别针对中文字符、数字及英文字母进行拆分并计数。通过设置不同的正则表达式,能够精确地识别和统计各种字符的数量。

public static void main(String[] args) throws Exception
{
String str = " a a a 3 3 3 中 国 人";
String[] zh = Pattern.compile("[\\u4e00-\\u9fa5]").split(str,-1);
String[] num = Pattern.compile("[\\d]").split(str,-1);
String[] eng = Pattern.compile("[a-zA-Z]").split(str,-1);

System.out.println("中文字符:" + (zh.length - 1));
System.out.println("数字:" + (num.length - 1));
System.out.println("英文字符:" + (eng.length - 1));
}



[list]
[*]思路:将字符串按查找类型拆分获得数组,计算数组长度。
[/list]

[list]
[*]注意:public String[] split(CharSequence input, int limit)(其中 limit 参数默认为 0)
JDK API 1.6 的解释如下:
围绕此模式的匹配拆分给定输入序列。
此方法返回的数组包含输入序列的子字符串,由匹配此模式的另一子序列或输入序列的结尾终止。数组中子字符串的顺序与其在输入中出现的顺序相同。如果此模式与输入的任何子序列都不匹配,那么得到的数组仅包含一个元素,即字符串形式的输入序列。
limit 参数控制应用模式的次数,从而影响结果数组的长度。如果限制 n 大于零,那么模式至多应用 n> - 1 次,数组的长度不大于 n,并且数组的最后条目将包含除最后的匹配定界符之外的所有输入。如果 n 非正,那么将应用模式的次数不受限制,并且数组可以为任意长度。如果 n 为零,那么应用模式的次数不受限制,数组可以为任意长度,并且将丢弃尾部空字符串。
[/list]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值