Как из строки сделать число java

от admin

Java: преобразование строки в число и наоборот

В некоторых случаях при программировании на Java нам нужно выполнить преобразование строки в число или числа в строку. Это бывает, если мы имеем величину определённого типа и желаем присвоить эту величину переменной другого типа. Преобразования типов в Java осуществляются разными способами, давайте рассмотрим наиболее популярные из них.

Как преобразовать строку в число в Java?

Речь идёт о преобразовании String to Number. Обратите внимание, что в наших примерах, с которыми будем работать, задействована конструкция try-catch. Это нужно нам для обработки ошибки в том случае, когда строка содержит другие символы, кроме чисел либо число, которое выходит за рамки диапазона предельно допустимых значений указанного типа. К примеру, строку «onlyotus» нельзя перевести в тип int либо в другой числовой тип, т. к. при компиляции мы получим ошибку. Для этого нам и нужна конструкция try-catch.

Преобразуем строку в число Java: String to byte

Выполнить преобразование можно следующими способами:

C помощью конструктора:

С помощью метода valueOf класса Byte:

С помощью метода parseByte класса Byte:

А теперь давайте посмотрим, как выглядит перевод строки в массив байтов и обратно в Java:

Преобразуем строку в число в Java: String to int

Здесь, в принципе, всё почти то же самое:

Используем конструктор:

Используем метод valueOf класса Integer:

Применяем метод parseInt:

Аналогично действуем и для других примитивных числовых типов данных в Java: short, long, float, double, меняя соответствующим образом названия классов и методов.

Как преобразовать число в строку в Java?

Теперь поговорим о преобразовании числа в строку (Number to String). Рассмотрим несколько вариантов:

Как преобразовать строку в число

Очень часто бывает следующая задача: конвертировать строку в числовой тип. В 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, но с потерей точности.

Заключение

В данной статье мы описали стандартные методы преобразования строки в число. При выборе метода нужно учитывать размерность типов, к которому приводится число.

How do I convert a String to an int in Java?

If you look at the Java documentation you’ll notice the "catch" is that this function can throw a NumberFormatException , which you can handle:

(This treatment defaults a malformed number to 0 , but you can do something else if you like.)

Alternatively, you can use an Ints method from the Guava library, which in combination with Java 8’s Optional , makes for a powerful and concise way to convert a string into an int:

Читать:
7z sfx что это

For example, here are two ways:

There is a slight difference between these methods:

  • valueOf returns a new or cached instance of java.lang.Integer
  • parseInt returns primitive int .

The same is for all cases: Short.valueOf / parseShort , Long.valueOf / parseLong , etc.

nanofarad's user avatar

lukastymo's user avatar

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.

Peter Mortensen's user avatar

Peter Mortensen's user avatar

Billz's user avatar

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.

Jonah Graham's user avatar

Integer.decode

You can also use public static Integer decode(String nm) throws NumberFormatException .

It also works for base 8 and 16:

If you want to get int instead of Integer you can use:

ROMANIA_engineer's user avatar

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.

The first thing to do is to receive the input, in this case, a string of digits; I’ll call it String number , and in this case, I’ll exemplify it using the number 12, therefore String number = "12";

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:

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

В этом посте будет обсуждаться преобразование строки в целое число в Java. Если значение указанной строки отрицательное, т. е. строка с префиксом ASCII '-', решение должно сохранить знак в результирующем целом числе.

В Java есть много способов преобразовать строку в целое число:

1. Использование Integer Class

The Integer Класс предоставляет множество методов для преобразования строки в целое число. Эти методы являются статическими и не требуют инстанцирования перед вызовом и вызовом NumberFormatException если строка не содержит допустимого целого числа.

Integer класс имеет parseInt() метод, который анализирует строковый аргумент и возвращает примитивный тип int.

Похожие статьи