軟體測試實驗二

來源:互聯網
上載者:User

標籤:

(1)寫一個程式,用於分析一個字串中各個單詞出現的頻率,並將單詞和它出現的頻率輸出顯示。(單詞之間用空格隔開,如“Hello World My First Unit Test”);

FileWoedCount:

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;

public class FileWordCount {
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new FileReader("D:\\test.txt"));
String s;
StringBuffer sb = new StringBuffer();
while ((s = br.readLine()) != null) {
sb.append(s);
}
Map<String,Integer> map = new HashMap<String, Integer>();
StringTokenizer st = new StringTokenizer(sb.toString(),",.! \n");
while (st.hasMoreTokens()) {
String letter = st.nextToken();
int count;
if (map.get(letter) == null) {
count = 1;
} else {
count = map.get(letter).intValue() + 1;
}
map.put(letter,count);
}
Set<WordEntity> set = new TreeSet<WordEntity>();
for (String key : map.keySet()) {
set.add(new WordEntity(key,map.get(key)));
}
// 自己拼接字串,輸出想要的字串格式
System.out.println("輸出形式一:");
for (Iterator<WordEntity> it = set.iterator(); it.hasNext(); ) {
WordEntity w = it.next();
System.out.println("單詞:" + w.getKey() + " 出現的次數為: " + w.getCount());
}
// 直接列印 WordEntity 對象,實現我們想要的輸出效果,只需在WordEntity類中重寫toString()方法
System.out.println("輸出形式二:");
for (Iterator<WordEntity> it = set.iterator(); it.hasNext(); ) {
WordEntity w = it.next();
System.out.println(w);
}
// 我們可以控制只輸出前三名來
System.out.println("輸出形式三:");
int count = 1;
for (Iterator<WordEntity> it = set.iterator(); it.hasNext(); ) {
WordEntity w = it.next();
System.out.println("第" + count + "名為單詞:" + w.getKey() + " 出現的次數為: "
+ w.getCount());
if (count == 3)// 當輸出3個後跳出迴圈
break;
count++;
}
} catch (FileNotFoundException e) {
System.out.println("檔案未找到~!");
} catch (IOException e) {
System.out.println("檔案讀異常~!");
}
}

}

 

FileWordCountTest:

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;


public class FileWordCountTest {

@BeforeClass
public static void setUpBeforeClass() throws Exception {
}

@AfterClass
public static void tearDownAfterClass() throws Exception {
}

@Before
public void setUp() throws Exception {
}

@After
public void tearDown() throws Exception {
}

}

WordEntity:

public class WordEntity implements Comparable<WordEntity> {
private String key;
private Integer count;
public WordEntity (String key, Integer count) {
this.key = key;
this.count = count;
}
public int compareTo(WordEntity o) {
int cmp = count.intValue() - o.count.intValue();
return (cmp == 0 ? key.compareTo(o.key) : -cmp);
//只需在這兒加一個負號就可以決定是升序還是降序排列 -cmp降序排列,cmp升序排列
//因為TreeSet會調用WorkForMap的compareTo方法來決定自己的排序
}

@Override
public String toString() {
return key + " 出現的次數為:" + count;
}

public String getKey() {
return key;
}

public Integer getCount() {
return count;
}

}

 

軟體測試實驗二

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.