作业第五次

结对对象:何季生   博客网址:http://www.cnblogs.com/hjss/         

 贡献比例:50%;50%

 github:http://www.cnblogs.com/xiexiaoshan123/

因为有了上次作业的铺垫,所以此次作业也较为轻松不少。

import java.util.*; 

import java.io.*; 
public class WordsRate {public static void main(String[] args) throws Exception {

BufferedReader infile = new BufferedReader(new FileReader("D:\A_Tale_of_Two_Cities.txt"));
String string;
String file = null;
while ((string = infile.readLine()) != null) {
file += string;
}
file = file.toLowerCase();
file = file.replaceAll("[^A-Za-z]", " ");
file = file.replaceAll("\s+", " ");
String words[];
words = file.split("\s+");
Map<String, Integer> hashMap = new HashMap<String, Integer>();
for (int i = 0; i < words.length; i++) {
String key = words[i];
if (hashMap.get(key) != null) {
int value = ((Integer) hashMap.get(key)).intValue();
value++;
hashMap.put(key, new Integer(value));
} else {
hashMap.put(key, new Integer(1));
}
}
Map<String, Object> treeMap = new TreeMap<String, Object>(hashMap);
Map<String, Object> treeMap1 = new TreeMap<String, Object>(hashMap);
BufferedWriter bw = new BufferedWriter(new FileWriter("result1.txt")); 
Iterator iter = treeMap.entrySet().iterator(); 
String ss1[]=new String[treeMap.size()];;
int ss2[]=new int[treeMap.size()];
int i=0;
while (iter.hasNext()) { 
Map.Entry entry = (Map.Entry) iter.next(); 
int val = (Integer)entry.getValue(); 
String key =(String) entry.getKey(); 
ss1[i]=key;
ss2[i]=val;
i++;

int sValue=0;
String sKey="";
for(int j=0;j<ss2.length;j++){
for(int k=0;k<i;k++){
if(ss2[j]>ss2[k]){
sValue=ss2[j];
sKey=ss1[j];
ss2[j]=ss2[k];
ss1[j]=ss1[k];
ss2[k]=sValue;
ss1[k]=sKey;
}
}
}int[] strLengths = new int[ss2.length];
for(int j=0 ;j<ss2.length; j++){
strLengths[j] = ss1[j].length();
}
Scanner s=new Scanner(System.in);
System.out.println("请输入所要查找的单词: ");
String str = s.next();
int count=0;
for(int j=0;j<words.length;j++)
{if(str.equals(words[j])) count++;}
System.out.println("所要查找单词频率为:"+count);




for(int j=0;j<ss2.length;j++){
if(strLengths[j]>=4)
System.out.println(ss1[j]+"="+ss2[j]);
bw.write(ss1[j]+"="+ss2[j]); 
bw.newLine(); 
bw.flush(); 
}
}
}

运行结果:

原文地址:https://www.cnblogs.com/xiexiaoshan123/p/5330830.html