java代码词频 java词频统计( 三 )


1cellist
1cause
1care
1by
1boy
1best
1bachelor
1away
1are
1an
1american
1also
1after
1acting
1abruptly
java程序:统计单词词频,不多说,先看代码:
import java.util.*;
import java.io.*;
public class wordsRate {
public static void main(String[] args) throws Exception {
BufferedReader infile = new BufferedReader(new FileReader("article.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+");
MapString, Integer hashMap = new HashMapString, Integer();
for (int i = 0; iwords.length; i++) {
String key = words[i];
if (hashMap.get(key) != null) {
int value = https://www.04ip.com/post/((Integer) hashMap.get(key)).intValue();
value++;
hashMap.put(key, new Integer(value));
} else {
hashMap.put(key, new Integer(1));
}
}
MapString, Object treeMap = new TreeMapString, Object(hashMap);
MapString, Object treeMap1 = new TreeMapString, Object(hashMap);
BufferedWriter bw = new BufferedWriter(new FileWriter("result.txt"));
//下面是我改动的你的代码:
Iterator iter = treeMap.entrySet().iterator();
//定义两个新的数组ss1和ss2 , 数组长度就是hashMap的长度 , 里面放分别是hashMap的value和key
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++;
}
//下面将ss1数组进行排序,并将其与ss2数组的内容相对应起来
int sValue=https://www.04ip.com/post/0;
String sKey="";
for(int j=0;jss2.length;j++){
for(int k=0;ki;k++){
if(ss2[j]ss2[k]){
sValue=https://www.04ip.com/post/ss2[j];
sKey=ss1[j];
ss2[j]=ss2[k];
ss1[j]=ss1[k];
ss2[k]=sValue;
ss1[k]=sKey;
}
}
}
for(int j=0;jss2.length;j++){
System.out.println(ss1[j]+"="+ss2[j]);
bw.write(ss1[j]+"="+ss2[j]);
bw.newLine();
bw.flush();
}
}
}
代码是本人自己写的,也经过了自己的验证 , 肯定没问题,希望采纳 。
功能实现了,我是将其key和value值放在了数组之中 , 然后进行排序 , 将其输出到了txt文件里
排序方式不一样,实现的方式也不一样,所谓仁者见仁智者见智 。
用java编程词频计数器 , 跪求各位大哥帮帮啊!!!!!import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class TestWin extends JFrame implements ActionListener {
private JButton openBtn = new JButton("选择文件");
private JLabel resultLabel = new JLabel("", JLabel.CENTER);
private JTextField textField = new JTextField();
private JButton calcBtn = new JButton("计算");
private JFileChooser fileChooser = new JFileChooser(".");
private File file;
public TestWin() {
openBtn.addActionListener(this);
calcBtn.addActionListener(this);
calcBtn.setEnabled(false);

推荐阅读