【发布时间】:2019-06-12 22:41:15
【问题描述】:
我正在尝试找到一种方法来识别 string 中的 1 位或 2 位数字(不能有任何 3 位数字),将它们加在一起,使它们必须在 80 到 95 之间。
由于某种原因,代码无法正常工作,因为它总是返回 false,即使它应该(理论上)返回 true。
例如。 “Hi 57 how are you 30”返回假
提前感谢您的帮助!
("line" is the name of the String.)
public boolean isDig(){
int total=0;
int h;
int length = line.length();
for(h=0; h < length-1; h++) {
if (Character.isDigit(line.charAt(h))){
if (Character.isDigit(line.charAt(h+1))){
if (Character.isDigit(line.charAt(h+2))){
return false;
}
else {
total= total+(line.charAt(h)+line.charAt(h+1));
h++;
}
}
else {
total= total+(line.charAt(h));
}
}
if (total>=80 && total<=95){
return true;
}
else {
return false;
}
}
【问题讨论】:
-
做一些调试,看看你的添加实际上在做什么——它可能让你吃惊。几个
System.out.println语句就足够了。 -
你做了什么调试?您具体需要哪些帮助?你检查过
total是什么吗? -
请注意,如果 h == length - 2,您对第三个字符是否为数字的检查将超出字符串的末尾。即如果最后有一个两位数(例如没有任何尾随空格),它将失败。