11解析一个文件中的价格数据,并计算总价格,点击“解析”按钮解析文件中的价格数据,在文本区中追加显示读到的文件内容和计算的总价格

11解析一个文件中的价格数据,并计算总价格,点击“解析”按钮解析文件中的价格数据,在文本区中追加显示读到的文件内容和计算的总价格
文件的内容如下:
商品列表:
手机,4586元/台
笔记本,6580元/台
打印机,2568元/台

完整代码如下

    public static void main(String[] args) {
        JFrame jFrame = new JFrame();
        jFrame.setSize(200, 200);
        jFrame.setLocationRelativeTo(null);
        jFrame.setLayout(new BorderLayout());

        JTextArea jTextArea = new JTextArea();
        JButton jButton = new JButton("解析文件数据");
        JLabel jLabel = new JLabel("合计:");
        jButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                File file = new File("D:\\temp.txt");
                jTextArea.setText(jTextArea.getText()+readFile(file));
                double sum = Arrays.stream(jTextArea.getText().split("\n")).filter(s->s!=null&&s.trim().length()>0).collect(Collectors.summingDouble(line ->Double.parseDouble(line.split(",")[1].replace("元/台", ""))));
                jLabel.setText("合计:" + sum);
            }
        });

        jFrame.add(jLabel, BorderLayout.NORTH);
        jFrame.add(jTextArea, BorderLayout.CENTER);
        jFrame.add(jButton, BorderLayout.SOUTH);
        jFrame.setVisible(true);
    }

    public static String readFile(File file) {
        StringBuilder sb = new StringBuilder();
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
            String line = null;
            while((line=br.readLine())!=null) {
                sb.append("\n").append(line);
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        return sb.toString();
    }

运行结果如下

img

如有帮助,请采纳,十分感谢!

这代码写个ui就可

with open("x.txt","r",encoding="utf-8") as f:
    data=f.readlines()
data=data[1:]
num=sum([float(i.split(",")[-1].split("元")[0]) for i in data])
data.insert(0,"合计:{}".format(num))
print(data)