实验目的
1. 掌握语言基础类库中System 、Math 、数据类型等类的使用。
2. 掌握字符串的使用。
实验内容
1. 编写一个程序,接受用户输入的一段英文文字,统计出其中的字符个数、单词个数和句子的个数。(设句子以“。”“!”“?”结束,单词之间利用空格分隔)。
特别提示
1. 在java中,System 、Math 、String、数据类型等类都在java.lang包中,系统将会自动引入。
2. String类的方法在书中71页的图2.6中给出。String是一个类类型,所以在比较两个String对象所包含的内容是否相等时,不能用==,要通过方法equals来实现。
—————————————————————————————————————————————————————————————————————————————
下面是我的代码
—————————————————————————————————————————————————————————————————————————————
貌似我写的代码不符合实验人的预期要求,我没有用equals啊,我用的是==,算了,做出来了就行,黑猫白猫,能捉老鼠就是好猫.
import java.util.*;
public class shiyan4 {
public static void main(String arg[])
{
String str;
int wordNum=0,sentNum=0;
Scanner scan=new Scanner(System.in);
System.out.println("Text to statistics");
str=scan.nextLine();
for(int i=0;i<str.length();i++)
{
char a=str.charAt(i);
switch(a)
{
case '.':
case '?':
case '!':
sentNum++;
case ' ':
wordNum++;
break;
default:
break;
}
}
System.out.println("word:"+wordNum+",sentence:"+sentNum);
}
}
这里的switch中的break要说一下,如果没有break会继续往下面的case运行,所以'.','?','!'都会执行sentNum++,也会执行wordNum++;
只有空格只执行wordNum++;
到了大三考嵌入式的时候竟然又考了这个问题,狂汗啊,嵌入式没有讲程序语言竟然考试考一个读程序的题目(C语言的,最好自学点C):
int main()
{
int a=1,b=0;
switch(a)
{
case 0:
a++;
case 1:
a++;
case 2:
a++;
b++;
case 3:
b++;
}
printf("a=%d,b=%d",a,b);
}
问题就是请写出输出结果:
答案是:a=3,b=2
所以switch中的break不容小觑,大三了还给你来个4分的题目.