嘿所以我得到了这个问题的硬件,然而一些阅读,我还没有完全理解它。我不明白我需要什么来申请才能收到答案:Java的理解基地
for (int i = 0; i < value.length(); i++) {
if (value.charAt(i) >= 0) {
if (value.charAt(i) <= base) {
return false;
}
}
}
return true;
}
嘿所以我得到了这个问题的硬件,然而一些阅读,我还没有完全理解它。我不明白我需要什么来申请才能收到答案:Java的理解基地
for (int i = 0; i < value.length(); i++) {
if (value.charAt(i) >= 0) {
if (value.charAt(i) <= base) {
return false;
}
}
}
return true;
}
您的条件被反转。
它应该是这样的,
for (int i = 0; i < value.length(); i++) {
if (value.charAt(i) < '0') {
return false;
}
if (value.charAt(i) >= base + '0') {
return false;
}
}
return true;
或者你可以结合这两个if
条件,
if (value.charAt(i) < '0' || value.charAt(i) >= base + '0') {
return false;
}
仍然失败,我把Junit测试的问题。这可能会影响解决方案吗? –
@Alex,实际上'for'循环中的条件是错误的。现在纠正它。 – Codebender
不工作仍然,这些是先决条件藏汉: '前提条件:值包含至少一个字符 \t * PARAM值 \t * PARAM基座(2 <=碱基<= 10) \t *返回真,如果每个值的字符介于0和base-1之间' –
问题是很清楚,你要检查,如果在字符串中的每个字符'值'是**数字**大于或等于'0'并且小于'base' ..您究竟在哪里坚持这样做? – Codebender
@Codebender我接近了解它吗?我很困惑这个基地。 \t ''公共静态布尔的isValid(字符串值,INT基){ \t \t对(INT I = 0; I> value.length();我++){ \t \t \t如果(value.charAt(I) > = 0){ \t \t \t \t如果(value.charAt(ⅰ)<基) \t \t \t \t \t返回真; \t \t \t \t} \t \t \t} \t \t返回FALSE; \t \t}'' –
是的..你真的很接近......只有一个小问题......只要1个字符是合适的,你的代码就会返回true ......但是你需要尽快返回false字符是**不**适当的......所以,否定你的条件,并在循环后面返回false和'true' ... – Codebender