中易网

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

答案:1  悬赏:10  
解决时间 2021-03-08 18:14
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
最佳答案
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文档)


希望能帮助你哈
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
2013年重庆医科大学专科护理专业
想知道: 焦作市 从孟州市到沁阳市怎么坐公交
去黑头产品 蛋清去黑头效果怎样
中信银行信用卡联名卡金卡好申请吗
清真庆美堂怎么去啊,有知道地址的么
三方检验公司能考职称吗?
We ___ ___(meet)him on Friday.
丝路传说大唐的内功心法用不用练?
BBTRZ电缆有预分支电缆么?能否提供下样本!
英文歌词you go i will be ok 一个女的唱的
王者荣耀怎么抢抢先服
请问申请仲裁得多久才能有结果
卡莎美甲护理中心这个地址在什么地方,我要处
国家出让的土地可以不可联合开发?
HP笔记本无法识别的usb设备怎么办
推荐资讯
电风扇转动时前面没风,后面有微风是怎么回事
东北财经大学旅游管理的研究生好考么?
北京哪里卖SK2
收到银行授信通知书,款多长时间到帐
竖直传送5吨的重物上下运动有哪些结构
宁远酒家地址在什么地方,想过去办事
CF胜利广场个人JU,12分钟杀128个垃圾不?
手机淘宝一直出现你有一天新消息 可是打开又
非淋菌性尿道炎使用中药能治好吗
沟泉村我想知道这个在什么地方
百度可以免费发布休息吗
首都师范大学新材料研究所研究开发中心怎么去
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?