Как преобразовать String в int (Java)
Допустим, у нас есть некая строка с числами «567» и нам необходимо ее привести к типу int. Каким образом можно преобразовать string в int?
Мы можем воспользоваться простой конструкцией:
1 |
int myInt = Integer.parseInt("567"); |
Также можно преобразовать строку так:
1 |
Integer myVar = Integer.valueOf("567"); |
Правда, в этом случае мы уже создаем не примитивный тип int, а «wrapper» java.lang.Integer.
В первом случае важно помнить, что конструкция Integer.parseInt() может выбросить исключение NumberFormatException, если вы «подсунете» неподходящий аргумент, например, «567aa». Для таких случаев можно создать специальный статический метод:
1 2 3 4 5 6 7 |
public static int stringToInt(String val, int defaultVal) { try { return Integer.parseInt(val); } catch (NumberFormatException e) { return defaultVal; } } |
то есть мы вызываем метод с двумя аргументами: строкой для преобразования и значением по умолчанию, если будет выброшено исключение. Если в вашем классе встречается множество строчек с преобразованием строки в число, то использование такого отдельного метода целесообразно, поскольку код становится чище.
Еще вариант — удалить все «не числовые» символы в строке перед преобразованием:
1 2 |
string str = str.replaceAll( "[^\\d]", "" ); int resultVal= Integer.parseInt(str); |
Категория: Java