Преобразование строки в int java. Преобразование типов в Java

Часто задаваемый вопрос по типам String/int в Java : Как преобразовать тип String в тип Int ?

Решение : используя метод parseInt класса Java Integer . Метод parseInt переводит тип String в Int , и вызывает исключение NumberFormatException , если строка не может быть приведена к целочисленному значению.

Посмотрим на два коротких примера.

1. Простой пример преобразования “ string to integer” в Java

Игнорируя исключение, которое может возникнуть, всё, что нужно сделать для перевода String в int , умещается в одну строку кода:

int i = Integer.parseInt(myString);

Если строка, представленная переменной myString , является корректным целым числом, например, “1”, “200”, и т.п., она будет приведена к типу int . Если преобразование окончится неудачей, будет вызвано исключение NumberFormatException . Поэтому ваш код должен быть немного длиннее, чтобы учитывать это, как показано в следующем примере.

2. Полный пример перевода String в int

Ниже приведен полный код примера программы. Она демонстрирует процесс перевода в Java строки в целое число и обработку возможного исключения 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 к целому типу ), то метод parseInt класса Integer вызовет исключение NumberFormatException , которое необходимо обработать в блоке try/catch .

В этом примере на самом деле не нужно использовать метод trim() класса String . Но в реальных программах он понадобится, поэтому я применил его здесь.

Дополнительные замечания

Раз уж мы обсуждаем эту тему, вот несколько замечаний о классах String и Integer :

  • Метод Integer.toString(int i) используется для преобразования из типа int в класс Java String .
  • Для преобразования объекта String в объект Integer используйте метод valueOf() класса Integer вместо parseInt() .
  • Если нужно приводить строки к другим примитивным типам Java , например, long , используйте методы Long.parseLong() , и т.п.

Резюме

Надеюсь, что этот пример перевода String в int в Java был полезным. Если у вас есть вопросы или замечания, оставляйте их в комментариях.

Перевод статьи “How to convert a Java String to an Int ” был подготовлен дружной командой проекта .

Хорошо Плохо

    Класс Integer является контейнером для типа данных int. Этот класс включает в себя методы преобразования значений из строки в объект Integer. Данное руководство содержит…

Часто возникает необходимость преобразования строк в значения других типов, таких как int или boolean, и наоборот. В соответствии с принятым соглашением ответственность за преобразование строки в значение другого типа возложена на соответствующий метод этого типа. Так, например, преобразование строки в величину типа int выполняет статический метод из состава класса-оболочки Integer. В следующей таблице указаны все типы, допускающие преобразование значений в строки и наоборот, и перечислены соответствующие методы.

ТИП Метод для преобразова- Метод для преобразования из строки

ния В строку

boolean String.valueOf(boolean) new.Boolean(String). booleanvalue()

byte String.valueOf(byte) Byte.parseByte(string, int)

short String.valueOf(short) Short.parseShort(string, int)

int String.valueOf(int) Integer.parseInteger(string, int)

long String.valueOf(long) Long.parseLong(String, int)

float String.valueOf(float) Float.parseFloat(String)

double String.valueOf(double) Double.parseDouble(String)

Для преобразования строки в значение Boolean необходимо создать объект Boolean и затем запросить его значение. Все остальные классы-оболочки содержат Соответствующие методы parse. Методы parse целочисленных типов существуют в двух перегруженных формах: первая, помимо строки, требует задания дополнительного аргумента типа int, представляющего основание системы счисления – от 2 до 32; вторая принимает только параметр строки и по умолчанию предполагает использование десятичной системы счисления. Во всех случаях, кроме Boolean, предполагается следующее: если строка представляет значение, которое не может быть корректно преобразовано в число соответствующего типа, выбрасывается исключение NumberFormatException. Класс Boolean удовлетворяет соглашению, в соответствии с которым любая строка-параметр, не равная “true” (без учета регистра символов), приводит к созданию объекта вооlеаn со значением false.

Методов, позволяющих преобразовать символы, которые представлены в одной из поддерживаемых языком форм (таких как \b, \uxxxx и т.д.), В значения типа char и наоборот, не существует. Чтобы получить объект String, содержащий единственный символ, достаточно вызвать метод String.valueOf, передав ему в качестве параметра соответствующее значение типа char.

Отсутствуют также и способы создания строковых представлений чисел, заданных в одном из поддерживаемых языком форматов – с ведущим нулем (О), обозначающим восьмеричное число, и префиксом Ох (или ОХ), служащим признаком шестнадцатеричной системы счисления. Напротив, в целочисленных классах-оболочках поддерживаются версии метода decode, способного преобразовать строки в числовые значения соответствующего типа и “понимающего”, что ведущий О обозначает восьмеричное число, а один из префиксов Ох ИЛИ Ох – шестнадцатеричное.

Любой прикладной класс способен обеспечить поддержку преобразований собственных объектов в строки и обратно, если в его объявлении будет соответствующим образом переопределен метод toString и предусмотрен специальный конструктор, создающий объект класса на основе строки, переданной в качестве параметра. В вашем распоряжении имеется также метод String.valueOf(Object obj), который возвращает либо строковый объект “null” (если значение obj равно null), либо результат работы метода obj.toString. Класс String содержит достаточное количество перегруженных версий метода valueOf, позволяющих преобразовать любое значение любого типа в объект String посредством простого вызова valueOf с передачей нужного аргумента.

Приблизительный уровень необходимых знаний: квест 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 () и ему подобные.
Автор ответа: Элис Уотсон