【发布时间】:2018-09-07 19:14:16
【问题描述】:
我的代码应该使在 discountCode 字符串中输入除字母或“$”以外的任何内容都会导致抛出异常,但这不会发生。用户可以键入任何内容,但仍然不会收到异常消息。 非常感谢任何帮助,谢谢。
private String normalizeDiscountCode(String discountCode) {
String upperDiscountCode = discountCode.toUpperCase();
for (char i : upperDiscountCode.toCharArray()) {
if (Character.isLetter(i) || i == '$') {
return upperDiscountCode;
} else {
throw new IllegalArgumentException("Invalid discount code");
}
}
return upperDiscountCode;
}
public void applyDiscountCode(String discountCode) {
this.discountCode = normalizeDiscountCode(discountCode);
}
}
【问题讨论】:
-
您在第一次迭代中
returning。 -
尝试将
"123"作为参数传递 -
谢谢,我应该如何继续下去?
-
还可以考虑使用与 IllegalArgumentException 不同的异常:stackoverflow.com/questions/15208544/…
-
只有第一个字符不满足条件,你的代码才会失败。将
return upperDiscountCode;替换为continue以使您的代码按原样工作。
标签: java arrays object if-statement illegalargumentexception