2015-08-28 7 views
-3

Эй, я получил этот вопрос для HW, однако несколько прочитанных, и я до сих пор не понимаю его полностью. Я не понимаю, к чему я должен обратиться, чтобы получить ответ:Java-понимание Base

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 (значение String, ИНТ база) { \t \t для (INT I = 0; I> value.length(); я ++) { \t \t \t если (value.charAt (я) > = 0) { \t \t \t \t, если (value.charAt (я) <основание) \t \t \t \t \t возвращает истину; \t \t \t \t} \t \t \t} \t \t возвращение ложным; \t \t} ' –

+0

Да .. Вы действительно близки ... Только небольшая проблема ... Ваш код вернет true, как только 1 символ будет правильным ... Но вместо этого вам нужно вернуть false, как только 1 символ ** не ** надлежащий ... Итак, отрицайте свои условия и 'возвращайте 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

не работает до сих пор, эти предварительные условия Aswell: 'Предпосылка: значение содержит по меньшей мере один символ \t * значение паров \t * пары основания (2 <= базовую <= 10) \t * возвращают истину, если каждому символ значения находится между 0 и base-1' –