正则表达式计算单词出现次数

给定一段文本,使用正则表达式计算该文本中不同单词的出现次数。

[code]
/*
* 使用正则表达式来计算一段文本当中所有以小写字母开头的
* 单词的出现次数
*/
public void testRegex(){
String POEM =
"Towas brillig, and the slithy toves\n" +
"Did gyre and Gimble in the wabe.\n" +
"All mimsy were the borogoves,\n" +
"And the mome raths outgrabe.\n\n" +
"Beware the Jabberwock, my son,\n" +
"The jaws that bite, the claws that catch.\n" +
"Beware the Jubjub bird, and shun\n" +
"The frumious Bandersnatch.";
Map<String, Integer> wordCount = new HashMap<String, Integer>();
//\\b用来指定单词的边界,这里在单词的开头和结尾都使用了\\b。用来
//区分各个单词。中间的\\w+指明一个活着多个单词字符(word character)
Matcher m = Pattern.compile("\\b([a-z]\\w+[a-zA-Z]){1}\\b").matcher(POEM);

while(m.find()) {
if(wordCount.containsKey(m.group(0))){
Integer count = wordCount.get(m.group(0));
wordCount.put(m.group(0), count+1);
}else{
wordCount.put(m.group(0), 1);
}
}
System.out.println(wordCount.toString());
}
[/code]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值