使用了两种方式split和StringTokenizer
Java编程,在主类CountWords的主方法中,使用字符串分析器类StringTokenizer完成对下面英文的单词统计,分隔符包括:逗号、圆点、分号、空格、感叹号(,.; !)。请输出每个拆分后的单词,并在最后输出单词总个数。
要统计的英文内容:
Which do you find more important, money or friends? Friends, of course.
输出:
单词的总数是:12
package test6; import java.util.ArrayList; import java.util.Scanner; import java.util.StringTokenizer; public class Test6_2 { 定义Split类 : 方法一 public static int Split(String str1) { //分隔符包括:逗号、圆点、分号、空格、感叹号(,.; !) String Re[] = str1.split("[,.; !]"); //将数组转换成列表,解决,和空格之间会认为一个单词的问题 ArrayListstrList = new ArrayList (); for (int i = 0; i < Re.length; i++) { strList.add(Re[i]); } //循环删除list列表中所有的空值 while (strList.remove(null)); while (strList.remove("")); //将去除空值的列表转换为新数组 String newArray[] = strList.toArray(new String[strList.size()]); //返回方法一split方式统计的单词总数 return newArray.length; } //定义StringTokenizer类 : 方法二 public static int StringTokenizer(String str) { //使用StringTokenizer自带类统计单词总数 StringTokenizer tk=new StringTokenizer(str,"[,.; !]"); int num=0; while(tk.hasMoreElements()){ tk.nextToken(); num++; } //返回方法二StringTokenizer方式统计的单词总数 return num; } //主类 public static void main(String[] args) { while (true) { Scanner in = new Scanner(System.in); System.out.println("请输入需要统计的英文内容:"); String str = in.nextLine(); System.out.println("自建Split类统计的单词总数是:" + Split(str)); System.out.println("自带StringTokenizer类统计的单词总数是:" + StringTokenizer(str) + "n"); } } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)