【发布时间】:2015-04-26 10:32:38
【问题描述】:
此代码应该以这种格式“$(金额)”从客户那里获取输入。 if 语句用于检查字符串 payment 中的第一个字符是否等于“$”,但这不会触发 if 语句,它一直将其读取为无效付款。
double money = 0;
String payment = input.next();
String $ = "$";
String test = payment.substring(0);
if (test.equals($)) {
System.out.println("You entered " + payment);
payment = payment.substring(1, payment.length() - 1);
money = Double.parseDouble(payment);
if ( money < sum ) {
System.out.println("Not enough money. System terminating.");
System.exit(0);
}
System.out.println(payment);
}
else {
System.out.println("Invalid coin or note. Try again.");
payment = input.next();
}
【问题讨论】:
-
您认为
substring(0);会做什么?如果要抢第一个字符,只需使用if (payment.charAt(0) == '$')... -
不建议将变量命名为
$。 -
添加到@MarounMaroun,来自java文档chapter 3.8 identifiers:
The $ character should be used only in mechanically generated source code or, rarely, to access pre-existing names on legacy systems.
标签: java string if-statement