解析文件中的价格数据,并计算平均价格

解析文件中的价格数据,并计算平均价格

文件内容为:
在这里插入图片描述
为了兼容性,以下代码将读到的字符串转为UTF-8

package analysis;

import java.io.*;
import java.util.*;
public class analysis {

	public static void main(String[] args) {
		RandomAccessFile file = null;
		Scanner sc = null;
		int count = 0;	//计数共有几个数字
		double sum = 0;	//总的价值
		try
		{
			file = new RandomAccessFile("test.txt","r");	//只读打开文件test.txt
			StringBuilder sb = new StringBuilder();			//定义一个字符串缓存,将字符串存放缓存中
	        String s = null;								//临时变量
	        byte b[];										//临时字符数组
	        while ((s = file.readLine()) != null) 
	        {											//逐行读取文件内容,不读取换行符和末尾的空格
	        	b = s.getBytes("iso-8859-1");			//重新编码  防止乱码
				String content = new String(b,"UTF-8");	//将字符数组转化为字符串
	            sb.append(content + "\n");				//将读取的字符串添加换行符后累加存放在缓存中
	        }
	        file.close();	//关闭文件
	        String str = sb.toString();//转化为string类型
			double price = 0;
			System.out.println("读取到文件内容为:\n\n"+str);
			sc = new Scanner(str);
			sc.useDelimiter("[^0123456789.]+");//以非数字作为分隔符
			while(sc.hasNextDouble())	//读不到double类型时结束循环
			{
				price = sc.nextDouble();//读到的double类型赋值给price,若不是自动转为double
				count++;
				sum += price;
				System.out.println(price);
			}
			double aver = sum / count;
			System.out.println("平均价格为:"+aver);
		}
		catch(Exception e)
		{
			System.out.println(e);
		}
		
	}

}

运行结果

读取到文件内容为:

商品列表:
电视机,2567元/台
洗衣机,3562元/台
冰箱,6573元/台

2567.0
3562.0
6573.0
平均价格为:4234.0

可否有更简便的方法???


版权声明:本文为qq_36148336原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。