JAVA 如何将文本文件里面的数据排序好并且输出

例如该图片里面的内容有文字有数字用#字符分开将这些数据排序好输出在JTextArea里面... 例如该图片里面的内容 有文字 有数字用#字符分开
将这些数据 排序好输出在JTextArea里面
展开
 我来答
lzs丶灬
2017-01-06 · TA获得超过632个赞
知道小有建树答主
回答量:881
采纳率:100%
帮助的人:511万
展开全部
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的排序
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式