第二次作业
第一题。
1. 写一个Java程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”);
2. 编写单元测试进行测试;
3. 用ElcEmma查看代码覆盖率,要求覆盖率达到100%。
解:
Demo类:
1importjava.util.HashMap;
2importjava.util.Iterator;
3importjava.util.Map;
4importjava.util.Set;
5
6publicclassDemo {
7
8publicvoidcountWord(String str) {
9String[] wordsArray = str.split(" ");
10Map<String, Integer> wordsMap = newHashMap<String, Integer>();
11for(String word : wordsArray) {
12
13if(wordsMap.containsKey(word)) {
14wordsMap.put(word, wordsMap.get(word) + 1);
15} else{
16wordsMap.put(word, 1);
17}
18}
19
20Set<String> setKey =wordsMap.keySet();
21Iterator<String> itKey =setKey.iterator();
22while(itKey.hasNext()) {
23String word =itKey.next().toString();
24intcount =wordsMap.get(word);
25
26System.out.println("单词 " + word + " 出现" + count + "次");
27
28}
29}
30
31}
JUnit单元测试类:
1importstaticorg.junit.Assert.*;
2importorg.junit.Test;
3
4publicclassDemoTest {
5
6@Test
7publicvoidtestCountWord() {
8Demo demo = newDemo();
9demo.countWord("Hello World Hello Java Hello Test");
10}
11
12}
测试:
EclEmma代码覆盖率:
第二题。
题目。
1.写一个Java程序,把一个英语句子中的单词次序颠倒后输出。例如输入“how are you”,输出“you are how”;
2.编写单元测试进行测试;
3.用ElcEmma查看代码覆盖率,要求覆盖率达到100%
解:
package cn.lin;
import java.util.Scanner;
public class aaa {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.print("请输入英文字母:");
String str = input.nextLine();
String[] strArr = str.split("\\s+|[,]");
StringBuffer result = new StringBuffer();
for(int i = strArr.length -1;i >=0; i--){
result.append(strArr[i] + " ");
}
result.setCharAt(str.length()-0, (char) 0);
System.out.println("颠倒顺序后的英文字母结果为:"+result.toString());
}
}