这是一个java程序,输出购物小票的价格数据,并计算总价格~
import java.util.*;
public class FoundPrice{
public static void main (String args[]){
System.out.println("请输入您的购物小票");
Scanner reader=new Scanner(System.in);
String regex="[^0123456789.]";
String digitMess=reader.replaceAll(regex,"*");
StringTokenizer fenxi=new StringTokenizer(digitMess,"*");
int number=fenxi.countTokens();
double sum=0;
while(fenxi.hasMoreTokens()){
String str=fenxi.nextToken();
System.out.println(str);
sum=sum+Double.parseDouble(str);
}
System.out.println("购物小票中的商品种类:"+number+"种");
System.out.println("购物小票中的价格总额:"+sum+"元");
}
}
求大家看看我这有什么错误 ...
然后如果我想把这个程序改一改
改成 输入若干购物小票,统计一个月,一个星期(从星期日到星期六)的开支
又该怎么写呢?
------解决方案--------------------
reader没有replaceAll这个方法吧
------解决方案--------------------

就是这个,楼主你看编译的报错提示了吗?

------解决方案--------------------
你可以先把控制台输入的字符串,从Scanner实例中拿出来,比如对scanner这个引用句柄,调用它的next系列方法,得到String;
然后,replaceAll这个方法,是String的,不是Scanner的,所以那儿报错了;
最后,统计开支,你需要做一个简单的流程,可反复触发“读取控制台输入”这一步,这样可以多次录入购物小票信息,然后你需要一个容器,比如ArrayList,把这些输入存起来,最后再遍历这个容器,把里面的信息筛选、相加;
嗯。。。写代码一定要知道自己写的代码是什么意思,这是第一步,第二步则是遇到诸如“统计购物小票一定时间段的总额”的需求,要有一个实现思路。
------解决方案--------------------
}
public void todo(){
System.out.println("请输入您的购物小票");
Scanner reader=new Scanner(System.in);
String regex="[^0123456789.]";
String getnew=reader.next();
StringTokenizer fenxi=new StringTokenizer(getnew.replaceAll(regex,"*"),"*");
int number=fenxi.countTokens();
double sum=0;
while(fenxi.hasMoreTokens()){
String str=fenxi.nextToken();
System.out.println(str);
sum=sum+Double.parseDouble(str);
}
System.out.println("购物小票中的商品种类:"+number+"种");
System.out.println("购物小票中的价格总额:"+sum+"元");
}
}