#java
Есть такие строки: 0x16 012 0b10 62 Нужно перевести их в: 22 10 2 62 соответственно, но при использовании Integer.parseInt(String, int) получаю NumberFormatException, как решить эту проблему?
Ответы
Ответ 1
например, можно написать такую функцию private static int StringToInteger(String input) { if(input.startsWith("0x")) { return Integer.parseInt(input.substring(2), 16); } else if(input.startsWith("0b")) { return Integer.parseInt(input.substring(2), 2); } else if(input.startsWith("0") && input.length() > 1) { return Integer.parseInt(input.substring(1), 8); } else { return Integer.parseInt(input); } }Ответ 2
В метод Integer.parseInt(String, int) передается строка, содержащая число в той или иной системе счисления без каких-либо префиксов: System.out.println(Integer.parseInt("16", 16)); // 22 System.out.println(Integer.parseInt("12", 8)); // 10 System.out.println(Integer.parseInt("10", 2)); // 2 System.out.println(Integer.parseInt("62", 10)); // 62
Комментариев нет:
Отправить комментарий