读取一个txt文件,打印每一行数据出现的次数;并按照次数多少进行排序,然后打印出来。

txt中数据格式如下:1.张三,282.李四,233.王五,564.周四,455.张三,386.王五,567.王五,568.张三,289.张三,28也就是说最后要实现:张... txt中数据格式如下:
1.张三,28
2.李四,23
3.王五,56
4.周四,45
5.张三,38
6.王五,56
7.王五,56
8.张三,28
9.张三,28

也就是说最后要实现:
张三,28 4次
王五,56 3次
李四,45 2次

1.张三,28
8.张三,28
9.张三,28
5.张三,38
6.王五,56
7.王五,56
3.王五,56

4.李四,45
2.李四,45
展开
 我来答
未来需努力点缀
2013-06-09 · TA获得超过4679个赞
知道大有可为答主
回答量:850
采纳率:50%
帮助的人:529万
展开全部

lz  你好


具体代码如下:

import java.io.*;
import java.util.*;

public class Test{
private BufferedReader br;
private ArrayList<String> all;
private TreeSet<String> sub;
private String[] subStr;
private int[] count;

public Test(){
try {
br = new BufferedReader(new FileReader(new File("info.txt")));
all = new ArrayList();
sub = new TreeSet();
subStr = new String[3];
count = new int[3];
}
catch (Exception ex) {
}
}

//读数据
public void readData(){
int i=0;
String index = null;

try {
while((index = br.readLine()) != null){
all.add(index);

if(!sub.contains(index.substring(2))){
sub.add(index.substring(2));
count[i] = 1;
subStr[i++] = index.substring(2);
}
else{
for (int j = 0; j < i; j++){
if(subStr[j].equals(index.substring(2))){
count[j]++;
break;
}
}
}
}    
}
catch (Exception ex) {
}
}

//排序
public void sort(){
for (int i = 0; i < subStr.length-1; i++) {
for(int j = i+1; j < subStr.length; j++){
if(count[i] < count[j]){
int tt = count[i];
count[i] = count[j];
count[j] = tt;

String tmp = subStr[i];
subStr[i] = subStr[j];
subStr[j] = tmp;
}
}
}
}

//输出
public void output(){
for (int i = 0; i < subStr.length; i++) {
System.out.println (subStr[i] + "\t" + count[i] + "次");
}

System.out.println ();

for (int j = 0; j < subStr.length; j++) {
for(String inx:all){
if(inx.substring(2).equals(subStr[j])){
System.out.println (inx);
}
}
}
}

public static void main (String[] args) {
Test t = new Test();
t.readData();
t.sort();
t.output();
}
}


运行结果:
张三,28   4次
王五,56   3次
李四,45   2次

1.张三,28
5.张三,28
8.张三,28
9.张三,28
3.王五,56
6.王五,56
7.王五,56
2.李四,45
4.李四,45


(ps:info.txt文档应该和源文件在同目录下  否则不能读取到txt文档)


希望能帮助你哈

追问

你好,很感谢,写的很规范。

  1. 能否写下编程的思路。

  2. new FileReader(new File("info.txt"))变成new FileReader("info.txt"),也可以呀。

  3. 我运行了下你的程序,运行结果是。麻烦再排下错哇。



    张三,28   1次
    李四,45   1次

    王五,56   1次


        张三,28   
        李四,45   

        王五,56  

    

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式