题目
假设某餐馆中每桌顾客点菜记录的格式为“北京烤鸭:189 西芹百合:15 清蒸鲈鱼:80”(每道菜的价格与下一道菜的名字之间有一个空格)。编写一个类的方法,能够接受键盘录入的符合上述格式的点菜内容字符串,输出点菜记录中每种菜的价格及总价格。
答案
import java.util.*;
public class Menu
{
public static void Sum(String s)
{
HashMap<Food,Integer> h=new HashMap<Food,Integer>();
String []s1=s.split(" ");
for(int i=0;i<s1.length;i++)
{
String []s2=s1[i].split(":");
Food f=new Food(s1[0],Double.valueOf(s2[1]));
if(!h.containsKey(f))
{
h.put(f, 1);
}
else
{
int m=h.get(f);
h.remove(f);
h.put(f, m+1);
}
}
double sum=0;
for(Food key:h.keySet())
{
System.out.print(key.getPrice()+" ");
sum+=key.getPrice()*h.get(key);
}
System.out.println("");
System.out.println(sum);
}
public static void main(String[] args)
{