题目
假设某个餐馆平时使用:1)文本文件(orders.txt)记录顾客的点菜信息,每桌顾客的点菜记录占一行。每行顾客点菜信息的记录格式是“菜名:数量,菜名:数量,…菜名:数量”。例如:“烤鸭:1,土豆丝:2,烤鱼:1”。2)文本文件(dishes.txt)记录每种菜的具体价格,每种菜及其价格占一行,记录格式为“菜名:价格“。例如:“烤鸭:169”。编写一个程序,能够计算出orders.txt中所有顾客消费的总价格。
答案
import java.io.*;
import java.util.*;
/*
* 功能:读取文件中的内容,并且实现菜名和数量的分隔,一个菜名对应相应的数量
注意:在此过程中,需要综合所有菜名对应的数量
功能:读取菜名以及价格,将菜名与价格分开,价格与菜名相乘
*/
public class Order
{
public static void main(String[] args)
{
BufferedReader br=null;
String s;
String []s1;
String []s2;
String []s3;
HashMap<String,Integer> l=new HashMap<String,Integer>();
try
{
//br=new BufferedReader(new InputStreamReader(new FileInputStream("orders.txt")));
br=new BufferedReader(new FileReader("orders.txt"));
while((s=br.readLine())!=null)
{
s1=s.split(",");
for(int i=0;i<s1.length;i++)
{
s2=s1[i].split(":");
if(l.containsKey(s2[0]))
{
l.put(s2[0], l.get(s2[0])+Integer.valueOf(s2[1]));