Следующий код используется для преобразования строки в длинное значение. Когда я вызвать функцию Это показывает ошибку как:Java String Exception
Исключение в потоке «основного» java.lang.StringIndexOutOfBoundsException: индекс строки из диапазона: -4 на java.lang.String.substring (String.java:1955) на Test.StringToInt64 (Test.java:13) на Test.main (Test.java:25)
код:
long StringToInt64(String s)
{
long ret_val = 0, k = 1;
for (int j = s.length(); j > 0; j--)
{
if(s.substring(j - 1,1) != ".") // Error Line
{
String t = s.substring(j-1,1);
ret_val = (ret_val + (Integer.parseInt(t)*k));
k = k * 10;
}
}
return ret_val;
}
Ожидаемый ответ 11964.
Пожалуйста, помогите мне решить эту проблему ...
Вместо 'substring()', вы должны использовать 'charAt (int index)', который возвращает символ, который можно сравнить с помощью '! =' (Строки нужно сравнивать с помощью 'equals()'). См. Http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#charAt%28int%29 –
Или даже проще: 'Long.parseLong (s.replaceFirst (" \\. "," "))' –