一段字符串,求其中单词的个数。求大神

showbobbie 2014-04-11 10:39:09
字符串{(CNN) -- Two bombs struck near the finish line of the Boston Marathon on Monday, turning a celebration into a bloody scene of destruction.}
CNN,Two这样都算单词,不要求一定是字典里的,就只要连续的英文就行。怎么计算其中英文单词个数?
...全文
327 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuebichongkafei 2014-05-29
  • 打赏
  • 举报
回复
引用 3 楼 yankaiwuzhengbo 的回复:
正则的写法如下
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class WordMatches {
	public static void main(String[] args) {
		String str = "{nice||{ good, god? test aim i am";
		Pattern pattern = Pattern.compile("(\\w+)");
		Matcher matcher = pattern.matcher(str);
		int wordnumber = 0; // 单词的数量
		while (matcher.find()) {
			System.out.println(matcher.group());
			wordnumber++;
		}
		System.out.println(wordnumber);
	}
}
我想在你的字符串当中加几个阿拉伯数字,你觉得输出结果会是怎样呢?
lliiqiang 2014-05-29
  • 打赏
  • 举报
回复
Stringtoken分割之后 用HashMap,key字符串对应数量Integer统计,如果没有就赋值new Intege(1).否则就加1.
yuhouqingchen_2648 2014-05-29
  • 打赏
  • 举报
回复
引用 5 楼 xuebichongkafei 的回复:
[quote=引用 3 楼 yankaiwuzhengbo 的回复:] 正则的写法如下
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class WordMatches {
	public static void main(String[] args) {
		String str = "{nice||{ good, god? test aim i am";
		Pattern pattern = Pattern.compile("(\\w+)");
		Matcher matcher = pattern.matcher(str);
		int wordnumber = 0; // 单词的数量
		while (matcher.find()) {
			System.out.println(matcher.group());
			wordnumber++;
		}
		System.out.println(wordnumber);
	}
}
我想在你的字符串当中加几个阿拉伯数字,你觉得输出结果会是怎样呢?[/quote] 大神指导的是,那如果改成下面这样子的话是否可以满足匹配连续英文字符呢???
Pattern pattern = Pattern.compile("([a-zA-Z]+)");
乔不思 2014-05-28
  • 打赏
  • 举报
回复
yuhouqingchen_2648 2014-05-27
  • 打赏
  • 举报
回复
正则的写法如下
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class WordMatches {
	public static void main(String[] args) {
		String str = "{nice||{ good, god? test aim i am";
		Pattern pattern = Pattern.compile("(\\w+)");
		Matcher matcher = pattern.matcher(str);
		int wordnumber = 0; // 单词的数量
		while (matcher.find()) {
			System.out.println(matcher.group());
			wordnumber++;
		}
		System.out.println(wordnumber);
	}
}
-江沐风- 2014-04-12
  • 打赏
  • 举报
回复
用split分割一下或用正则表达式来实现;
zzwab99 2014-04-11
  • 打赏
  • 举报
回复
str.trim().split("\s+").length

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧