Страницы

Поиск по вопросам

пятница, 20 декабря 2019 г.

Перевод строки в десятичное число. Java

#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

Комментариев нет:

Отправить комментарий