2015-08-28 22 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之間' –