2017-02-23 142 views
-2
public static float getSelectedHeight() { 
    String selectedHeightValue = (String)heightSpin.getSelectedItem(); 
    if (heightSpin.getSelectedItemPosition() == 0) { 
    String feets = selectedHeightValue.substring(0,1); 
    String inches = selectedHeightValue.substring(2,4); 

    return (float) (Float.parseFloat(feets) * 0.3048) + (float) (Float.parseFloat(inches) * 0.0254); 

    } else { 
    return Float.parseFloat(selectedHeightValue); 
    } 
} 

индекс Строка ошибки из связанного исключения я не знаю, как решить эту проблему .. Пожалуйста, помогите мне в решении этой проблемыКак решить StringIndexOutOfBoundsException в моем случае?

**java.lang.StringIndexOutOfBoundsException: length=2; regionStart=2; regionLength=2** 

ответ

0

Проблема может быть строки с selectedHeightValue.substring(...)

К разрешите его, прежде всего как общий большой палец, перед выполнением любой операции с подстрокой, вы должны проверить selectedHeightValue должен быть действительным (так что не NULL, а не EMPTY).

А затем убедитесь, что вашего string size достаточно, чтобы подстроить его (чтобы он не превышал его размер при попытке получить доступ к позиции в строке, которая не существует).

Exmple: строка "ABC" имеет размер 3. И имеют позиции: 0,1,2. Если вы попытаетесь получить доступ к строке «ABC» в позиции 3 и выше (4,5,6 ...), чем я предполагаю, это вызовет ошибку, потому что вы хотите получить доступ к тому, что не существует.

+0

Вы знаете, что ваше «правильное правило» неверно в Java правильно? Строковые сравнения должны выполняться с помощью 'equals' – 0xDEADC0DE

+0

@ 0xDEADC0DE Спасибо, что я был в спешке при записи. Я обновил ответ. :) –

Смежные вопросы