1. 写一个Java程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”); 2. 编写单元测试进行测试; 3. 用ElcEmma查看代码覆盖率,要求覆盖率达到100%。

package cn.huang.main;

import cn.huang.word.WordFraq;

public class Demo {

    public static void main(String[] args) {

        String strWords="Hello World My First Unit Test";

        WordFraq wf = new WordFraq(strWords);

        wf.OutputResult();

    }

}

 

package cn.huang.word;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

public class WordFraq {

    private Map<String,Integer> wordsMap;

    public WordFraq(String strWords) {

        wordsMap=this.getArray(strWords);

    }

    public Map<String, Integer> getArray(String strWords){

        String[] words_Array = strWords.split(" ");

        Map<String, Integer> words_Map = new HashMap<String, Integer>();

        int arrLength=words_Array.length;

        for(int i=0;i<arrLength;i++){

            if (!words_Map.containsKey(words_Array[i])) {

                words_Map.put(words_Array[i], 1);

            } else {

                int currentNum = words_Map.get(words_Array[i])+1;

                words_Map.remove(words_Array[i]);

                words_Map.put(words_Array[i], currentNum);

            }

        }

        return words_Map;

    }

    public void OutputResult(){

        Set s = wordsMap.keySet();

        Iterator i = s.iterator();

        while (i.hasNext()) {

            Object o = i.next();

            System.out.println(o+"出现了"+wordsMap.get(o));

        }

    }

}

单元测试

package cn.huang.word;

import static org.junit.Assert.*;

import org.junit.Test;

public class WordFraqTest {

    @Test

    public void test() {

        String strWords="abc mln abc";

        WordFraq target=new WordFraq(strWords);

        target.OutputResult();

    }

}

posted @ 2016-03-27 20:52  狱花  阅读(488)  评论(0编辑  收藏  举报