2015-08-28 33 views
-3

嘿所以我得到了这个问题的硬件,然而一些阅读,我还没有完全理解它。我不明白我需要什么来申请才能收到答案:Java的理解基地

for (int i = 0; i < value.length(); i++) { 
     if (value.charAt(i) >= 0) { 
      if (value.charAt(i) <= base) { 
       return false; 

      } 
     } 
    } 
    return true; 
    } 
+0

问题是很清楚,你要检查,如果在字符串中的每个字符'值'是**数字**大于或等于'0'并且小于'base' ..您究竟在哪里坚持这样做? – Codebender

+0

@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}'' –

+0

是的..你真的很接近......只有一个小问题......只要1个字符是合适的,你的代码就会返回true ......但是你需要尽快返回false字符是**不**适当的......所以,否定你的条件,并在循环后面返回false和'true' ... – Codebender

回答

0

您的条件被反转。

它应该是这样的,

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; 
} 
+0

仍然失败,我把Junit测试的问题。这可能会影响解决方案吗? –

+0

@Alex,实际上'for'循环中的条件是错误的。现在纠正它。 – Codebender

+0

不工作仍然,这些是先决条件藏汉: '前提条件:值包含至少一个字符 \t * PARAM值 \t * PARAM基座(2 <=碱基<= 10) \t *返回真,如果每个值的字符介于0和base-1之间' –