Как преобразовать строку в int в Java
Единственное требование для преобразования строки в целое число в java заключается в том, что она должна содержать только цифры, которые вы хотите поместить в переменную типа int, за исключением первого символа, который указывает на отрицательное значение "-" или положительное значение "+". Например, результатом "-123" является число -123.Многие будут приводить, но java этого не позволяет.
Исключение Cannot приводит из String в int означает, что компилятор Java не разрешает приводить String к int. Это имеет смысл, так как они не имеют одного и того же типа.
Объект Integer
Объект Integer содержит один атрибут типа int. Этот класс содержит несколько методов для преобразования int в String и String в int.
1) Создавая новый экземпляр Integer(String s)
Этот конструктор выделяет новый объект, содержащий целое число:
public class Приведение {Output:
public static void main(String[] args) {
String nbs = "12";
int nb;
nb = new Integer(nbs);
System.out.println(nb);
}
}
12
2) с помощью Integer.valueOf(String s)
Метод valueOf() возвращает новый экземпляр java.lang.Integer который содержит значение, представленное в аргументе String.
Чтобы избежать завершения программы, мы вернем значение по умолчанию, если формат не соблюдается.
References:
Oracle.com - Класс Integer
JRJC-Преобразовать строку в int
public class Cast {Output:
public static void main(String[] args) {
String nbs = "12";
int nb;
nb = new Integer(nbs);
System.out.println(nb);
}
}
12
3) С помощью Integer.parseInt(String s)
parseInt() возвращает целочисленное значение, как если бы аргумент был передан в valueOf(String s).
public class Cast {Output:
public static void main(String[] args) {
String nbs = "12";
int nb;
nb = Integer.parseInt(nbs);
System.out.println(nb);
}
}
12
Exception NumberFormatException thrown
NumberFormatException вызывается, если переданный аргумент имеет неправильный формат. Причины:
- Переданный аргумент содержит хотя бы один нечисловой символ.
- Число не является десятичным, как число с плавающей запятой 12.4f.
Улучшаем нашу процедуру
public class Cast {Output:
public static void main(String[] args) {
String nbs = "12.4s";
int nb;
System.out.println(stringToInt(nbs,0));
}
public static int stringToInt(String value, int _default) {
try {
return Integer.parseInt(value);
} catch (NumberFormatException e) {
return _default;
}
}
}
0В случае, когда переменная nbs не является числовой, функция stringToInt() возвращает 0 по умолчанию.
References:
Oracle.com - Класс Integer
JRJC-Преобразовать строку в int