【发布时间】:2013-11-03 01:06:48
【问题描述】:
我已经修复了我之前的代码问题,现在我希望它通过“Else if”识别它是 4 位及以下还是 6 位及以上。
当我输入字母以在“Else if”中使用 System.out.println 来拒绝它时。
String digit;
String regex;
String regex1;
regex = "[0-9]{5}";
String test;
String validLength = "5";
char one, two, three, four, five; {
System.out.println("In this game, you will have to input 5 digits.");
do {
System.out.println("Please input 5-digits.");
digit = console.next();
test = digit.replaceAll("[a-zA-Z]", "");
if (digit.matches(regex)) {
one = (char) digit.charAt(0);
two = (char) digit.charAt(1);
three = (char) digit.charAt(2);
four = (char) digit.charAt(3);
five = (char) digit.charAt(4);
System.out.println((one + two + three + four + five) / 2);
}
【问题讨论】:
-
考虑将该值与
9999和100000进行比较。 -
我希望它能够知道它是 4 位数字还是 5 位数字等。但也能够接受 00001,因为它是 5 位数字,因此我正在尝试使用正则表达式我不太熟悉。
-
您的某些
else if语句后面有分号。删除那些以防止没有 ifs 的 else 的编译时错误。您的代码看起来不错,只是length是String的方法,而不是字段。所以它必须是digit.length()。 -
我删除了分号,但问题仍然存在。我将研究长度方法并用另一个脚本回归。
-
正则表达式应该是:
regex = "[0-9]{5}";,不是regex = "[0-9](5)";