Как преобразовать 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

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