Как мне конвертировать из int в String? - PullRequest
718 голосов
/ 05 ноября 2010

Я работаю над проектом, в котором все преобразования из int в String выполняются следующим образом:

int i = 5;
String strI = "" + i;

Я не знаком с Java. Это обычная практика или что-то не так, как я полагаю?

Ответы [ 19 ]

6 голосов
/ 09 июля 2013

Это зависит от того, как вы хотите использовать вашу строку.Это может помочь:

String total =  Integer.toString(123) + Double.toString(456.789);
5 голосов
/ 09 апреля 2017

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

1)

Integer.toString(10);

2)

 String hundred = String.valueOf(100); // You can pass an int constant
 int ten = 10;
 String ten = String.valueOf(ten)

3)

String thousand = "" + 1000; // String concatenation

4)

String million = String.format("%d", 1000000)
5 голосов
/ 13 апреля 2016
String strI = String.valueOf(i);

String string = Integer.toString(i);

Оба способа верны.

5 голосов
/ 23 мая 2013

Существует три способа преобразования в строки

  1. String string = "" + i;
  2. String string = String.valueOf(i);
  3. String string = Integer.toString(i);
4 голосов
/ 05 ноября 2010

В основном то же самое на SimonJ. Мне действительно не нравится "" + я идиома. Если вы скажете String.valueOf (i), Java преобразует целое число в строку и возвращает результат. Если вы говорите «+ i», Java создает объект StringBuilder, добавляет к нему пустую строку, преобразует целое число в строку, добавляет его в StringBuilder, а затем преобразует StringBuilder в строку. Это много дополнительных шагов. Полагаю, если ты сделаешь это однажды в большой программе, это не страшно. Но если вы делаете это все время, вы заставляете компьютер выполнять кучу дополнительной работы и создаете все эти дополнительные объекты, которые затем необходимо очистить. Я не хочу увлекаться микрооптимизацией, но и не хочу быть бессмысленно расточительным.

3 голосов
/ 06 ноября 2010

Использование "" + i - самый короткий и простой способ преобразования числа в строку.Это не самое эффективное, но самое ясное ИМХО, и это, как правило, более важно.Чем проще код, тем менее вероятно, что вы допустите ошибку.

2 голосов
/ 20 апреля 2013

Лично я думаю, что "" + я выгляжу так, как на оригинальном плакате с вопросом "вонючий".Я использовал много ОО языков помимо Java.Если этот синтаксис задумывался как подходящий, то Java просто интерпретировала бы один i без необходимости "", как требуется для преобразования в строку, и делала это, поскольку тип назначения однозначен и только справа указывалось бы только одно значение,Другое похоже на «обман», чтобы обмануть компилятор, плохое умение, когда рассматриваются разные версии Javac, сделанные другими производителями или с других платформ, если когда-либо нужно будет портировать код. Черт возьми, мне нравятся многие другие OOL простовозьмите Typecast: (String) i. подмигивает

Учитывая мой способ обучения и простоту понимания такой конструкции при быстром чтении другого кода, я голосую за Integer.toString (i)Забывая ns или два в том, как Java реализует вещи в фоновом режиме, по сравнению со String.valueOf (i) этот метод мне подходит и точно говорит, что происходит: у меня есть и Integer, и я хочу, чтобы он был преобразован в строку.

Хорошая мысль, сделанная пару раз, - возможно, простое использование StringBuilder - хороший ответ для построения строк, состоящих из текста и целых или других объектов, поскольку это то, что в любом случае будет использоваться в фоновом режиме, верно?

Только мои два цента брошены в и без того хорошо оплачиваемую кошечку ответов на Маns вопрос ... улыбается

РЕДАКТИРОВАТЬ НА МОЙ СОБСТВЕННЫЙ ОТВЕТ ПОСЛЕ НЕКОТОРЫХ ОТРАЖЕНИЙ:

Хорошо, хорошо, я думал над этим еще немногои String.valueOf (i) также очень хорош, и он говорит: я хочу String, который представляет значение Integer.LOL, английский намного сложнее разобрать, чем Java!Но я оставляю оставшуюся часть моего ответа / комментария ... Меня всегда учили использовать самый низкий уровень цепочки методов / функций, если это возможно, и все еще поддерживают читабельность, поэтому, если String.valueOf вызывает Integer.toString, тогда зачем использовать весь оранжевыйесли ты все равно собираешься его почистить, Хммм?

Чтобы прояснить мой комментарий о StringBuilder, я строю много строк с комбинациями в основном буквального текста и целых чисел, и они становятся длинными и безобразными при вызовах вышеупомянутогоУпомянутые подпрограммы встроены между +, так что мне кажется, что если они в любом случае становятся объектами SB, а метод append имеет перегрузки, то может быть чище просто продолжать и использовать их ... Так что я думаю, что у меня до 5 центов на этоодин сейчас, а?лол ...

0 голосов
/ 03 мая 2018

использование Integer.toString(tmpInt).trim();

0 голосов
/ 17 апреля 2014

Попробуйте простое приведение типов

char c = (char) i;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...