Как конвертировать string в int java
Преобразование строки в int или Integer в Java
В этой статье мы покажем несколько способов преобразования строки в int или целое число.
1. введение
Преобразование String в int или Integer – очень распространенная операция в Java. В этой статье мы покажем несколько способов решения этой проблемы.
Есть несколько простых способов справиться с этим базовым преобразованием.
2. Integer.parseInt()
Одним из основных решений является использование Integer выделенного статического метода: parseInt() , который возвращает примитивное int значение :
По умолчанию метод parseInt() предполагает, что заданная строка является целым числом base-10. Кроме того, этот метод принимает еще один аргумент для изменения этого значения по умолчанию radix. Например, мы можем разобрать двоичную строку s следующим образом:
Естественно, этот метод также можно использовать с любым другим радиксом, таким как 16 (шестнадцатеричный) или 8 (восьмеричный).
3. Integer.valueOf()
Другим вариантом было бы использовать статический Integer.valueOf() метод, который возвращает Integer экземпляр :
Аналогично, метод valueOf() также принимает пользовательский radix в качестве второго аргумента:
3.1. Целочисленный кэш
На первый взгляд может показаться, что значение методов() и parseInt() совершенно одинаковы. По большей части это верно — даже метод valueOf() делегирует метод parseInt внутренне.
Поэтому настоятельно рекомендуется использовать valueOf() вместо parseInt() для извлечения коробочных целых чисел, так как это может привести к улучшению общего объема нашего приложения.
4. Конструктор целых чисел
Вы также можете использовать конструктор Integer :
5. Целое число.декодирование()
Кроме того, Integer.decode() работает аналогично Integer.value(), но также может принимать различные числовые представления :
6. Исключение NumberFormatException
Все упомянутые выше методы выбрасывают исключение NumberFormatException, при обнаружении неожиданных String значений. Здесь вы можете увидеть пример такой ситуации:
7. С Гуавой
Конечно, нам не нужно придерживаться самого ядра Java. Вот как то же самое можно сделать с помощью Guava Ints.TryParse(), который возвращает null значение, если он не может разобрать входные данные:
8. Заключение
Как преобразовать строку в число
Очень часто бывает следующая задача: конвертировать строку в числовой тип. В Java это можно сделать разными способами. Главное – учитывать максимальную размерность данных и точность (для дробных чисел).
Преобразование строки в целое число
Для конвертации строк в целые числа есть методы Integer.parseInt и Long.parseLong для конвертации в типы int и long, соответственно.
Простой способ получить int из строки:
Примечание: метод Integer.parseInt корректно преобразует числа, входящие в диапазон типа int (-2147483648..2147483647). Если число выходит за эти границы или содержит недопустимые символы, будет выброшено исключение NumberFormatException:
Если вам нужны числа большей размерности, чем int, воспользуйтесь методом Long.parseLong:
Например, можно использовать такой утилитарный метод, который при невозможности корректно распарсить строку вернёт ноль:
Преобразование строки в дробное число
Для преобразования строк в дробные числа можно воспольоваться методами Float.parseFloat и Double.parseDouble, которые производят числа типов float и double, соответственно:
Стоит заметить, что лучше пользоваться double вместо float из-за повышенной точности double.
Преобразование больших чисел
Если вам не хватает размерности для хранения чисел типах long и double, вы можете использовать BigInteger и BigDecimal:
Здесь не получится воспользоваться преобразованием в int из-за выхода за размеры int; получится преобразовать в double, но с потерей точности.
Заключение
В данной статье мы описали стандартные методы преобразования строки в число. При выборе метода нужно учитывать размерность типов, к которому приводится число.
Как конвертировать string в int java
Иногда возникают ситуации, когда имея величину какого-либо определенного типа, необходимо присвоить ее переменной другого типа. С переменными и их типами мы познакомились в прошлом уроке, в этом уроке мы рассмотрим наиболее популярные преобразования типов в Java:
Java преобразование строки в число (STRING to NUMBER)
В следующих примерах будет использована конструкция try-catch. Это необходимо для обработки ошибки, в случае, если строка содержит иные символы кроме чисел или число, выходящее за рамки диапазона допустимых значений определенного типа.
Например, строка «somenumber» не может быть переведена в тип int или в любой другой числовой тип. В это случае, при компеляции возникнет ошибка. Чтобы этого избежать, следует обезопаситься с помощью конструкции try-catch.
String to byte
C использованием конструктора
С использованием метода valueOf класса Byte
С использованием метода parseByte класса Byte
Перевод строки в массив байтов и обратно из массива байтов в строку
String to short
C использованием конструктора
C использованием метода valueOf класса Short
C использованием метода parseShort класса Short
String to int
C использованием конструктора
C использованием метода valueOf класса Integer
C использованием метода parseInt класса Integer
String to long
C использованием конструктора
C использованием метода valueOf класса Long
C использованием метода parseLong класса Long
String to float
С использованием конструктора
C использованием метода valueOf класса Float
C использованием метода parseFloat класса Float
String to double
С использованием конструктора
C использованием метода valueOf класса Double
C использованием метода parseDouble класса Double
String to boolean
Преобразование строки в логический тип 2мя способами. Обратите внимание, что строка не соответствующая true, будет преобразована в логическое значение false.
Как преобразовать строку в int в Java?
как я могу преобразовать String до int в Java?
моя строка содержит только числа, и я хочу вернуть число, которое она представляет.
30 ответов
посмотреть Java Документация для получения дополнительной информации.
например, вот два способа:
есть небольшая разница между этими методами:
ну, очень важным моментом является то, что целочисленный синтаксический анализатор выдает NumberFormatException как указано в Javadoc.
важно обрабатывать это исключение при попытке получить целочисленные значения из разделенных аргументов или динамически анализировать что-либо.
сделать это вручную:
в настоящее время я выполняю задание для колледжа, где я не могу использовать определенные выражения, такие как выше, и, глядя на таблицу ASCII, мне удалось это сделать. Это гораздо более сложный код,но он может помочь другим, которые ограничены, как я.
другой ограничение было то, что я не мог использовать повторяющиеся циклы, поэтому for цикл (который был бы идеальным) также не может быть использован. Это немного ограничивает нас, но опять же, это цель. Поскольку мне нужны были только две цифры (принимая последние две цифры), простой charAt решить это:
имея коды, нам просто нужно посмотреть на таблицу и внести необходимые корректировки:
теперь, почему двойной? Ну, из-за действительно «странного» шага. В настоящее время у нас есть два двойника, 1 и 2, но нам нужно превратить его в 12, нет никакой математической операции, которую мы можем сделать.
мы делим последний (lastdigit) на 10 в моде 2/10 = 0.2 (следовательно, почему двойной) такой:
это просто игра с цифрами. Мы превращали последнюю цифру в десятичную. Но теперь посмотрите, что происходит:
не вдаваясь в математику, мы просто изолируем единицы от цифр число. Видите ли, поскольку мы рассматриваем только 0-9, деление на кратное 10 похоже на создание «коробки», где вы ее храните (вспомните, когда ваш учитель первого класса объяснил вам, что такое единица и сто). Итак:
и вот вы идете. Вы превратили строку цифр (в данном случае две цифры) в целое число, состоящее из этих двух цифр, учитывая следующие ограничения:
альтернативным решением является использование Apache Commons’ NumberUtils:
утилита Apache хороша, потому что если строка является недопустимым форматом чисел, то 0 всегда возвращается. Следовательно, сохранение блока try catch.
Integer.decode
он также работает для базы 8 и 16:
если вы хотите получить int вместо Integer вы можете использовать:
всякий раз, когда есть малейшая вероятность того, что данная строка не содержит целого числа, вы должны обработать этот частный случай. К сожалению, стандартные методы Java Integer::parseInt и Integer::valueOf бросить NumberFormatException сигнал это особый случай. Таким образом, вы должны использовать исключения для управления потоком, что обычно считается плохим стилем кодирования.
пока это все еще использует исключения для управления потоком внутри, код использования становится очень чистым.
преобразование строки в int сложнее, чем просто преобразование числа. У вас есть думать о следующих вопросах:
мы можем использовать parseInt(String str) метод Integer класс-оболочка для преобразования строкового значения в целочисленное.
на Integer класс также предоставляет valueOf(String str) способ:
мы также можем использовать toInt(String strValue) of Служебный Класс NumberUtils для преобразования:
How do I convert a String to an int in Java?
How can I convert a String to an int in Java?
My String contains only numbers, and I want to return the number it represents.
48 Answers 48
For example, here are two ways:
There is a slight difference between these methods:
Well, a very important point to consider is that the Integer parser throws NumberFormatException as stated in Javadoc.
It is important to handle this exception when trying to get integer values from split arguments or dynamically parsing something.
An alternate solution is to use Apache Commons’ NumberUtils:
The Apache utility is nice because if the string is an invalid number format then 0 is always returned. Hence saving you the try catch block.
Integer.decode
It also works for base 8 and 16:
If you want to get int instead of Integer you can use:
Currently I’m doing an assignment for college, where I can’t use certain expressions, such as the ones above, and by looking at the ASCII table, I managed to do it. It’s a far more complex code, but it could help others that are restricted like I was.
Another limitation was the fact that I couldn’t use repetitive cycles, therefore, a for cycle (which would have been perfect) can’t be used either. This limits us a bit, but then again, that’s the goal. Since I only needed two digits (taking the last two digits), a simple charAt solved it:
Having the codes, we just need to look up at the table, and make the necessary adjustments:
Now, why double? Well, because of a really «weird» step. Currently we have two doubles, 1 and 2, but we need to turn it into 12, there isn’t any mathematic operation that we can do.
We’re dividing the latter (lastdigit) by 10 in the fashion 2/10 = 0.2 (hence why double) like this:
This is merely playing with numbers. We were turning the last digit into a decimal. But now, look at what happens:
Without getting too into the math, we’re simply isolating units the digits of a number. You see, since we only consider 0-9, dividing by a multiple of 10 is like creating a «box» where you store it (think back at when your first grade teacher explained you what a unit and a hundred were). So:
And there you go. You turned a String of digits (in this case, two digits), into an integer composed of those two digits, considering the following limitations: