Так что я читаю это:Не знаю, почему этот код генерирует исключение NumberFormatException. (Действительный вход)
10011011001;0110,1001,1001,0,10,11
И работает этот код на нем:
String[] parts = line.split(";");
System.out.println("Part 1 = " + parts[0]);
System.out.println("Part 2 = " + parts[1]);
System.out.println(isNumeric(parts[0]));
int original = Integer.parseInt(parts[0]);
System.out.println("Original = " + original);
isNumeric
метод, что я написал для отладки.
public static boolean isNumeric(String str) {
for (char c : str.toCharArray()) {
if (!Character.isDigit(c)) {
return false;
}
}
return true;
}
Выход:
Line = 10011011001;0110,1001,1001,0,10,11
Part 1 = 10011011001
Part 2 = 0110,1001,1001,0,10,11
true
Exception in thread "main" java.lang.NumberFormatException: For input string: "10011011001"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at str_substitution.main(str_substitution.java:45)
Понятия не имею, почему это исключение, очевидно, строка является числовым, и действительным.
Я хотел разобрать его как сам int, а теперь, возможно, длинный. –