JAVA 如何将文本文件里面的数据排序好并且输出
展开全部
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.*;
public class ReadInTextArea extends Frame {
public ReadInTextArea(){
this.setSize(400, 400);
setLayout(new BorderLayout());
final TextArea textArea = new TextArea("",5,20,TextArea.SCROLLBARS_VERTICAL_ONLY);
add(textArea, BorderLayout.CENTER);
final Button file = new Button("选择文件");
add(file, BorderLayout.SOUTH);
final FileDialog filedialog = new FileDialog(this,"选择文件");
ActionListener actionListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == file){
filedialog.setVisible(true);
FileReader fr = null;
try {
fr = new FileReader(filedialog.getDirectory() + filedialog.getFile());
BufferedReader br = new BufferedReader(fr);
StringBuilder sb = new StringBuilder();
String tmp;
java.util.List<String> list = new ArrayList<>();
while((tmp=br.readLine())!=null){
list.add(tmp);
}
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return Integer.parseInt(o2.split("#")[1]) - Integer.parseInt(o1.split("#")[1]);
}
});
for (int i = 0; i < list.size(); i++) {
sb.append(list.get(i));
sb.append("\n");
}
textArea.setText(sb.toString());
br.close();
fr.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
};
file.addActionListener(actionListener);
this.setVisible(true);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
ReadInTextArea readInTextArea = new ReadInTextArea();
}
}
追问
我想把每一个数据提取到一个LinkList里面 然后用split将每一个数据拆分成 数字部分
将数字部分装到一个数组里面 然后通过数字的排序 得到排序好的linklist
不知道如何具体实现 还有就是 不知道如何把已经排序的链表分行放到 JTextArea里面显示出来
追答
换行 是 \n
用LinkList和我这个一样,你一样需要一个Comparator
不然会使用默认的string的排序
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询