Рубрики
Без рубрики

Java Преобразует строку в целое число

Автор оригинала: Vuk Skobalj.

Вступление

Преобразование Строки в 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.