编写⼀个程序,接受⽤户输⼊的⼀段英⽂⽂字,统计出其中的字符个数、单词个数和句⼦的个数。(设。。。
这个题⽬⽤到正则表达式,正则表达式是⼀种可以⽤于模式匹配和替换的规范.
字符串对象(String)调⽤matches()可以判断当前字符串对象是否与参数regex指定的正则表达式匹配.
String上可以使⽤正则表达式的操作,实际上是利⽤了Pattern与Matcher的功能.当调⽤String的matches()⽅法时,实际上是调⽤了Pattern的静态⽅法matches(),这个⽅法会返回boolean值,表⽰字符串是否符合正则表达式.
将正则表达式视为⼀个对象来重复使⽤,使⽤pattern的静态⽅法compile()进⾏编译.这个⽅法会返回⼀个Pattern的实例,这个实例代表正则表达式,之后可以重复使⽤Pattern实例的matcher()⽅法来返回⼀个Matcher的实例,代表符合正则表达式的实例.
1import java.util.Scanner;
2import Matcher;
3import Pattern;
4
5public class Test5_1 {
6public static void main(String[] args){
7int countC=0,countW=0,countS=0; //分别表⽰字符,单词和句⼦的个数
8 Scanner in=new Scanner(System.in);
nextint()方法9 System.out.print("input a english sentence:");
10 String Line(); //⽤nextInt接收,是以回车作为分隔符.⽽⽤next接受,是以空格作为分隔符.
11 Pattern p2=Patternpile("[ ,.!?]"); //与[]中的任意⼀个字符匹配即可.分别有空格,逗号,句号,感叹号,问号.⽤以统计单词个数.
12 Matcher m2=p2.matcher(st);
13 Pattern p1=Patternpile("[a-zA-Z ,.!?]"); //匹配⼀段话中字符的个数
14 Matcher m1=p1.matcher(st);
15 Pattern p3=Patternpile("[.!?]"); //匹配⼀段话中句⼦的个数
16 Matcher m3=p3.matcher(st);
17boolean result2=m2.find();
18while(result2){
19 countW++;
20 result2=m2.find(); //判断是否到并统计个数
21 }
22boolean result1=m1.find();
23while(result1){
24 countC++;
25 result1=m1.find();
26 }
27boolean result3=m3.find();
28while(result3){
29 countS++;
30 result3=m3.find();
31 }
32 System.out.println("单词个数:"+countW);
33 System.out.println("字符个数:"+countC);
34 System.out.println("句⼦个数:"+countS);
35 }
36 }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论