Вступление
Преобразование Строки
в int
или соответствующий класс-оболочку Целое число
является обычной и простой операцией. То же самое относится и к обратному способу преобразования целого числа в строку .
Существует несколько способов добиться этого простого преобразования с помощью методов, встроенных в JDK.
Преобразование строки в целое число
Для преобразования строки в целое число или int существует четыре встроенных подхода. Класс – оболочка Integer
предоставляет несколько методов специально для этого использования – parseInt()
, значение()
и decade()
, хотя мы также можем использовать его конструктор и передать в него строку.
Эти три метода имеют разные типы возвращаемых данных:
parseInt()
– возвращает примитивint
.valueOf()
– возвращает новый или кэшированный экземплярЦелого числа
decode()
– возвращает новый или кэшированный экземплярЦелого числа
Тем не менее, это справедливо, чтобы задать вопрос:
“”В чем разница между значением()
и декодированием ()
?
Разница в том, что decode()
Также принимает другие представления чисел, отличные от обычных десятичных – шестнадцатеричных цифр, восьмеричных цифр и т. Д.
Примечание: Лучше создать экземпляр Целого числа
с помощью метода valueOf ()
, чем полагаться на конструктор. Это связано с тем, что метод valueOf()
вернет кэшированную копию для любого значения от -128 до 127 включительно и тем самым уменьшит объем памяти.
Целое число.Синтаксический анализ()
Метод parseInt()
поставляется в двух вариантах:
Синтаксический анализ(Строка s)
– Принятие строки, которую мы хотели бы проанализироватьСинтаксический анализ(Строка s, int radix)
– Принимает строку, а также базу системы счисления
Метод parseInt()
преобразует входную строку в примитив int
и создает исключение NumberFormatException
, если строка не может быть преобразована:
String string1 = "100"; String string2 = "100"; String string3 = "Google"; String string4 = "20"; int number1 = Integer.parseInt(string1); int number2 = Integer.parseInt(string2, 16); int number3 = Integer.parseInt(string3, 32); int number4 = Integer.parseInt(string4, 8); System.out.println("Parsing String \"" + string1 + "\": " + number1); System.out.println("Parsing String \"" + string2 + "\" in base 16: " + number2); System.out.println("Parsing String \"" + string3 + "\" in base 32: " + number3); System.out.println("Parsing String \"" + string4 + "\" in base 8: " + number4);
Запуск этого фрагмента кода приведет к:
Parsing String "100": 100 Parsing String "100" in base 16: 256 Parsing String "Google" in base 32: 562840238 Parsing String "20" in base 8: 16
Целое число.valueOf()
Значение ()
поставляется в трех вариантах:
valueOf(Строка s)
– Принимает строку и анализирует ее в целое числоvalueOf(int i)
– Принимает значение int и анализирует его в целое числоvalueOf(Строка s, int radix)
– Принимает строку и возвращает целое число, представляющее значение, а затем анализирует его с заданной базой
Метод valueOf ()
, в отличие от метода parseInt ()
, возвращает Целое число
вместо примитива int
, а также создает исключение NumberFormatException
, если строка не может быть преобразована должным образом и принимает только десятичные числа:
int i = 10; String string1 = "100"; String string2 = "100"; String string3 = "Google"; String string4 = "20"; int number1 = Integer.valueOf(i); int number2 = Integer.valueOf(string1); int number3 = Integer.valueOf(string3, 32); int number4 = Integer.valueOf(string4, 8); System.out.println("Parsing int " + i + ": " + number1); System.out.println("Parsing String \"" + string1 + "\": " + number2); System.out.println("Parsing String \"" + string3 + "\" in base 32: " + number3); System.out.println("Parsing String \"" + string4 + "\" in base 8: " + number4);
Запуск этого фрагмента кода приведет к:
Git Essentials
Ознакомьтесь с этим практическим руководством по изучению Git, содержащим лучшие практики и принятые в отрасли стандарты. Прекратите гуглить команды Git и на самом деле изучите это!
Parsing int 10: 10 Parsing String "100": 100 Parsing String "Google" in base 32: 562840238 Parsing String "20" in base 8: 16
Целое число.декодировать()
Метод decode()
принимает один параметр и поставляется в одном варианте:
декодирование(Строка s)
– Принимает строку и декодирует ее в целое число
Метод decode()
принимает десятичные, шестнадцатеричные и восьмеричные числа, но не поддерживает двоичные:
String string1 = "100"; String string2 = "50"; String string3 = "20"; int number1 = Integer.decode(string1); int number2 = Integer.decode(string2); int number3 = Integer.decode(string3); System.out.println("Parsing String \"" + string1 + "\": " + number2); System.out.println("Parsing String \"" + string2 + "\": " + number2); System.out.println("Parsing String \"" + string3 + "\": " + number3);
Запуск этого фрагмента кода приведет к:
Parsing String "100": 50 Parsing String "50": 50 Parsing String "20": 20
Вывод
Мы рассмотрели одну из фундаментальных тем Java и общих проблем, с которыми сталкиваются разработчики, – преобразование строки в целое число или int с помощью инструментов, поставляемых с JDK.