回顾大学--大一JAVA实验--实验四 字符与字符串

来源:互联网 发布:美国大选特朗普 知乎 编辑:程序博客网 时间:2024/05/28 23:21

实验目的

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分的题目.

原创粉丝点击