java — Как лучше переводить число в строку?
Программирую на Java, часто возникает задача переводить int/float/double в String. Часто я делаю например так
""+number
Просто потому что мне так удобнее, но мне почему-то кажется что не стоит так писать.
Знаю что можно делать например так
String.valueOf(number) Integer.toString(number) // для int
Какой способ будет правильнее использовать один из методов или можно писать ""+number
, и принципиально ли это вообще в этом случае?
Методы String.valueOf
и Integer.toString(int number)
одинаковы по эффективности, т.к. первый метод внутри себя вызывает второй.
По поводу number+""
и Integer.toString(int number)
несколько сложнее. Создание строки через +""
, как правило, разворачивается компилятором в StringBuilder
, с дальнейшим вызовом метода append
. Согласно моему тесту производительности, метод Integer.
немного быстрее, процентов на 10-20.
Что происходит внутри метода Integer.toString
?
Если взглянуть на его реализацию, увидем, что там аллоцируется массив char, который заполняется числами, при помощи битовых сдвигов. В методе StringBuilder.append(int number)
происходят аналогичные действия. Но, как мне кажется, за счет создания объекта StringBuilder
этот способ оказывается медленнее.
Основное различие данных методов в том, что если number == null
, то:
String.valueOf(number)
возвратит строкуnull
;- при
Integer.toString(number)
возникнет исключениеNullPointerException
.
2
`String.valueOf()`
можно применять как к int,double, так и float — есть ли возникнет необходимость поменять тип данных переменной, не нужно будет править код с преобразованием.
Если вы посмотрите на реализацию для int метода String.valueOf(int i)
— то метод вызывает Integer.toString(i)
соответственно.
Последний вариант самый затратный и лучше избегать таких велосипедов.
2
Зарегистрируйтесь или войдите
Регистрация через Google
Регистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
Как int перевести в string java
Different Ways For Integer to String Conversions in Java
We generally counter with such conversion articles because many operations can be performed over a string while we are limited to when it comes to integers. We have a wide varied list of in-built method in the String class that helps us perform hassle-free operations.
Suppose we are required to concatenate two integers then it would become a tedious job as we need to go through as we need to deal with the number system corresponding to which we will be playing mathematics within the number system. But in Java, in order to convert integer to string, we have some inbuilt methods and classes which make out work too easy.
Tip: We generally convert primitive class data members types though we have the concept of Wrapper classes to Strings because in practical programming in java we deal with strings.
Different Methods For Integer to String Conversions
- Using toString() method of Integer class
- Using valueOf() method of String class
- Using Integer(int).toString() method of Integer class
- Using DecimalFormat Class
- Using StringBuffer class
- using StringBuilder class
- Using special radix and custom radix
- Using concatenation with an empty string
Method 1: Using toString Method of Integer Class
The Integer class has a static method that returns a String object representing the specified int parameter. The argument is converted and returned as a string instance. If the number is negative, the sign will be preserved.
Converting Between Numbers and Strings
Frequently, a program ends up with numeric data in a string object—a value entered by the user, for example.
The Number subclasses that wrap primitive numeric types ( Byte , Integer , Double , Float , Long , and Short ) each provide a class method named valueOf that converts a string to an object of that type. Here is an example, ValueOfDemo , that gets two strings from the command line, converts them to numbers, and performs arithmetic operations on the values:
The following is the output from the program when you use 4.5 and 87.2 for the command-line arguments:
Converting Numbers to Strings
Sometimes you need to convert a number to a string because you need to operate on the value in its string form. There are several easy ways to convert a number to a string:
Each of the Number subclasses includes a class method, toString() , that will convert its primitive type to a string. For example:
The ToStringDemo example uses the toString method to convert a number to a string. The program then uses some string methods to compute the number of digits before and after the decimal point:
Перевод int в String на Java
Java позволяет вам преобразовывать значения из одного типа данных в другой при определенных условиях. Вы можете преобразовать строковую переменную в числовое значение, а числовое значение – в строковую переменную. В этой статье давайте рассмотрим, как перевести int в String на Java.
Преобразование с использованием Integer.toString(int)
Класс Integer имеет статический метод, который возвращает объект String, представляющий параметр int, указанный в функции Integer.toString(int). Этот подход, в отличие от других, может возвращать исключение NullPointerException.
Синтаксис
Есть два разных выражения для метода Integer.toString():
Параметры
Параметры этого метода:
- i: целое число, которое будет преобразовано.
- radix: используемая система счисления базы для представления строки.
Значение radix является необязательным параметром, и если оно не установлено, для десятичной базовой системы значением по умолчанию является 10.
Возвращаемое значение
Возвращаемое значение для обоих выражений – строка Java, представляющая целочисленный аргумент «i». Если используется параметр radix, возвращаемая строка определяется соответствующим основанием.
Пример
Вывод
Перевод с использованием String.valueOf(int)
String.valueOf() – это статический служебный метод класса String, который может преобразовывать большинство примитивных типов данных в их представление String. Включает целые числа. Этот подход считается лучшей практикой благодаря своей простоте.
Синтаксис
Это выражается как:
Параметр
i: целое число, которое должно быть преобразовано.
Возвращаемое значение
Этот метод возвращает строковое представление аргумента int.
Пример
Конвертация с помощью String.format()
String.format() – это новый альтернативный метод, который можно использовать для преобразования Integer в объект String. Хотя целью этого метода является форматирование строки, его также можно использовать для преобразования.
Синтаксис
Есть два разных выражения:
Параметры
Аргументы для этого метода:
- l: локальный адрес для форматирования;
- format: строка формата, которая включает спецификатор формата и иногда фиксированный текст;
- args: аргументы, которые ссылаются на спецификаторы формата, установленные в параметре format.
Возвращаемое значение
Этот метод возвращает отформатированную строку в соответствии со спецификатором формата и указанными аргументами.
Пример
Через DecimalFormat
DecimalFormat – это конкретный подкласс класса NumberFormat, который форматирует десятичные числа. Он имеет множество функций, предназначенных для анализа и форматирования чисел. Вы можете использовать его для форматирования числа в строковое представление по определенному шаблону.
Пример
Вывод
Если вы знаете, как использовать метод DecimalFormat, это лучший вариант для преобразования Integer в String из-за уровня контроля, который можете иметь при форматировании. Можете указать количество знаков после запятой и разделитель запятых для лучшей читаемости, как показано в примере выше.
Конвертировать с использованием StringBuffer или StringBuilder
StringBuilder и StringBuffer – это классы, используемые для объединения нескольких значений в одну строку. StringBuffer является потокобезопасным, но медленным, тогда как StringBuilder не является поточно-ориентированным, но работает быстрее.
Пример 1
Объект StringBuilder представляет объект String, который можно изменять и обрабатывать как массив с последовательностью символов. Чтобы добавить новый аргумент в конец строки, экземпляр StringBuilder реализует метод append().