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

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

文件内容为:
在这里插入图片描述
为了兼容性,以下代码将读到的字符串转为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

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

[ 冰点下载软件许可协议 ] 本协议是用户(您)和“冰点下载器”开发小组之间关于使用“冰点下载器”软件(本软件)达成的法律协议。您安装或者使用本软件的行为将视为对本协的接受及同意。除非您接受本协议,否则您无权下载、安装或使用本软件。 1. 本软件是免费许可软件,不进行出售。你可以免费的复制,分发和传播本软件, 但您必须保证每一份复制、分发和传播都必须是未更改过的,完整和真实的。您作为个人私用本软件。您只能对本软件进行非商业应用。 2. 没有经过“冰点下载器”的书面同意,您不得使用本软件支持任何商业实体或者商业行为。包含但不仅限于:直接或者间接使用本软件收费;使用本软件销售任何商品或者服务。 3. 本软件受版权法和国际版权条约以及其他知识产权法律和条约的保护。您不可以分解、反编译、反相工程和重构本软件。 4. 您在使用本软件中发生的任何行为都由您自己负责。您在此表示并且保证您只在遵守法律和本协议的情况下使用本软件,您不会使用本软件进行违反法律、违反规定或者损害“冰点下载器”或者任何第三方权利的行为,这些权利包含但不仅限于:隐私权、版权、专利权或者商标权。“冰点下载器” 不对这些行为负责。 5. “冰点下载器”对本软件产品不提供任何保证,不对任何用户因本软件所遭遇到的任何理论上的或实际上的损失承担责任,不对用户使用本软件造成的任何后果承担责任。 6. 我们可能在本软件或者“冰点下载器”官方网站上提供一些内容。对您通过本软件或者“冰点下载器”官方网站访问的第三方内容我们不承担任何责任。您可以通过本软件或者“冰点下载器”官方网站连接到第三方网站和 Web 服务,我们称其为“链接”和“标签”。我们出于便利之需向您提供这些链接和标签,但是我们并不控制第三方的链接和标签,也不对其负责。如果您与和本软件关连的第三方站点和服务进行了交易,您自己承担一切责任,包括由此造成的损失。 7. 我们会自动检查您的软件信息,以便更好的修正我们的软件。但是这些数据不会涉及您的个人信息,因此也不会侵害您的隐私。 8. 协议所定的任何条的部分或全部无效者,由协议中最接近的其他条替代,并且不影响其它条的效力。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值