java,小白问题

weixin_42402491 2018-06-06 06:01:26
package myTEST;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class PayTest {

public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int serveTimes = 0; //接待人数初始化
int totalCost = 0; //消费金额
int hasMoreGoods = 0; //是否二次购物

System.out.println("请输入结账员需要接待的顾客人数:");
serveTimes = Integer.parseInt(reader.readLine());
for(int i = 0; i < serveTimes; i++) {
totalCost = 0;
do {

System.out.println("请输入商品的价格"); //商品价格输入
double price = Integer.parseInt(reader.readLine());
if(price<0) {
System.out.println("输入不正确,重新输入");
hasMoreGoods = 1;
continue;
}

System.out.println("请输入商品数量"); //商品数量输入
int number = Integer.parseInt(reader.readLine());
if(number<0) {
System.out.println("输入不正确,请重新输入");
hasMoreGoods = 1;
continue;

}

System.out.println("还有需要购买的吗,输入1继续,其他数字结束");
hasMoreGoods = Integer.parseInt(reader.readLine()); //继续购买
totalCost = totalCost + (int)price*number; //金额计算

} while(hasMoreGoods == 1);

System.out.println("消费总额为:" + totalCost);
System.out.println("当前接待人数为:" + i);

}

System.out.println("当前没有顾客,您可以休息了");
}

}




报错内容如下:Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at myTEST.PayTest.main(PayTest.java:22)
...全文
1305 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
丿幕后之王 2018-06-14
  • 打赏
  • 举报
回复
用integer不可以吗?
stacksoverflow 2018-06-14
  • 打赏
  • 举报
回复
帖子结了吧。
谁予琴乱 2018-06-14
  • 打赏
  • 举报
回复
数字转换异常
靓仔wzl 2018-06-12
  • 打赏
  • 举报
回复
像这种问题,你直接把 java.lang.NumberFormatException: For input string: ""这段复制粘贴到百度上,会得到更为详细和各种其他情况的答案。
LS1firesoar 2018-06-11
  • 打赏
  • 举报
回复
判断下空字符吧
stacksoverflow 2018-06-07
  • 打赏
  • 举报
回复
引用 5 楼 weixin_42402491 的回复:
[quote=引用 1 楼 stacksoverflow 的回复:] 输入商品价格的时候你按了个回车导致的上述错误。 你应该读到输入后检查一下是否正确再做转换。
那怎么判断用户输入为空呢,int类型不能为空吧[/quote] reader.readLine()返回的是字符串,用字符串接一下,输入正确后再走下面的逻辑,输入不正确就提示重新输入。 比如 String inputStr = reader.readLine(); while(!checkInput(inputStr)){ System.out.println("输入不正确,请重新输入"); inputStr = reader.readLine(); }
weixin_42402491 2018-06-07
  • 打赏
  • 举报
回复
引用 1 楼 stacksoverflow 的回复:
输入商品价格的时候你按了个回车导致的上述错误。 你应该读到输入后检查一下是否正确再做转换。
那怎么判断用户输入为空呢,int类型不能为空吧
HgH3223273424 2018-06-06
  • 打赏
  • 举报
回复
引用 3 楼 stacksoverflow 的回复:
[quote=引用 2 楼 HgH3223273424 的回复:] 错误关键字 java.lang.NumberFormatException 这句话明确告诉了我们是数字格式异常,接着后面有 For input string: "1 " 提示,这就告诉我们你当前想把 "1 " 转换成数字类型时出错了,这样就很确切了。 具体是哪个类的哪个方法的哪一行的错误了,看下面错误堆栈,at myTEST.PayTest.main(PayTest.java:22) ,应该是myTEST.PayTest 类的main方法里的第22行出错了。
哪写了 For input string: "1 " ? [/quote] 咿呀,我以为和我错误一下呢,抱歉抱歉,但是也是大差不差的
stacksoverflow 2018-06-06
  • 打赏
  • 举报
回复
引用 2 楼 HgH3223273424 的回复:
错误关键字 java.lang.NumberFormatException 这句话明确告诉了我们是数字格式异常,接着后面有 For input string: "1 " 提示,这就告诉我们你当前想把 "1 " 转换成数字类型时出错了,这样就很确切了。 具体是哪个类的哪个方法的哪一行的错误了,看下面错误堆栈,at myTEST.PayTest.main(PayTest.java:22) ,应该是myTEST.PayTest 类的main方法里的第22行出错了。
哪写了 For input string: "1 " ?
HgH3223273424 2018-06-06
  • 打赏
  • 举报
回复
错误关键字 java.lang.NumberFormatException 这句话明确告诉了我们是数字格式异常,接着后面有 For input string: "1 " 提示,这就告诉我们你当前想把 "1 " 转换成数字类型时出错了,这样就很确切了。 具体是哪个类的哪个方法的哪一行的错误了,看下面错误堆栈,at myTEST.PayTest.main(PayTest.java:22) ,应该是myTEST.PayTest 类的main方法里的第22行出错了。
stacksoverflow 2018-06-06
  • 打赏
  • 举报
回复
输入商品价格的时候你按了个回车导致的上述错误。 你应该读到输入后检查一下是否正确再做转换。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧