Приблизительный уровень необходимых знаний: квест Java Syntax и немного Java Core.
В конце первого квеста JavaRush мы изучаем преобразование типов. В лекциях 10 уровня вы могли видеть, что преобразовать int
в String
— очень просто, и вообще практически любой примитивный тип приводится к String
без проблем.
int x = 5;
String text = "X=" + x;
Также те, кто уже доучился до 10 уровня квеста Java Syntax, знают, что невозможно привести ссылку на число к ссылке на строку. Так как же лучше всего конвертировать строку в примитивное целое число?
Делать это лучше с помощью метода parseInt
класса Integer
. Метод parseInt
должен преобразовать String
в int
и выдает исключение NumberFormatException
, если строка не может быть преобразована в тип int
.
Пример
Основная строка, которая переводит строку в целое число:
int i = Integer.parseInt (myString);
Если строка, обозначенная переменной myString
, является допустимым целым числом, например «1», «200», Java спокойно преобразует её в примитивный тип данных int
. Если по какой-либо причине это не удается, подобное действие может вызвать исключение NumberFormatException
, поэтому чтобы программа работала корректно для любой строки, нам нужно немного больше кода.
Программа, которая демонстрирует метод преобразования Java String
в int
, управление для возможного NumberFormatException
:
public class JavaStringToIntExample
{
public static void main (String[] args)
{
// String s = "fred"; // используйте это, если вам нужно протестировать //исключение ниже
String s = "100";
try
{
// именно здесь String преобразуется в int
int i = Integer.parseInt(s.trim());
// выведем на экран значение после конвертации
System.out.println("int i = " + i);
}
catch (NumberFormatException nfe)
{
System.out.println("NumberFormatException: " + nfe.getMessage());
}
}
Обсуждение
Когда вы изучите пример выше, вы увидите, что метод Integer.parseInt (s.trim ())
используется для превращения строки s
в целое число i
, и происходит это в следующей строке кода:
int i = Integer.parseInt (s.trim ())
Но иногда перевести строку в число просто так не получится. В нашем примере такая строка — имя fred. Можно говорить о кодах, в которых буквы записываются в компьютере, но, формально говоря, fred никакое не число, и лучше его оставить строкой. Наша программа организована так, что при попытке преобразования «фреда» в число процесс Integer parseInt
вызовет исключение NumberFormatException
, которое вы должны обрабатывать в блоке try / catch
.
В этом случае вам не обязательно использовать метод trim ()
класса String
, но в реальном программировании вы должны его использовать. Так что мы его вам продемонстрировали.
Раз уж поднялась такая тема, вот вам несколько «хинтов» по теме о классах String
и Integer
:
-
Integer.toString (int i)
используется для преобразования int
в строки Java.
- Если вы хотите преобразовать объект
String
в объект Integer
(а не примитивный класс int
), используйте метод valueOf ()
для класса Integer
вместо метода parseInt ()
.
- Если вам нужно преобразовать строки в дополнительные примитивные поля Java, используйте такие методы, как
Long.parseLong ()
и ему подобные.
Автор ответа: Элис Уотсон
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ