java — Как лучше переводить число в строку?
Stack Overflow на русскомLoading…
- 0
- +0
- Тур Начните с этой страницы, чтобы быстро ознакомиться с сайтом
- Справка Подробные ответы на любые возможные вопросы
- Мета Обсудить принципы работы и политику сайта
- О нас Узнать больше о компании Stack Overflow
- Бизнес Узнать больше о поиске разработчиков или рекламе на сайте
Взаимное преобразование чисел и символьных строк Java
Одной из наиболее часто выполняемых рутинных операций в программировании является преобразование строкового представления чисел во внутренний двоичный формат.
Правда, сделать это в Java совсем не трудно. В классах Byte, Short, Integer и Long для этой цели предоставляются методы parseByte(), parseShort(), parseInt() и parseLong() соответственно.
Эти методы возвращают значения типа byte, short, int или long, эквивалентные числовой строке, с которой они были вызваны (аналогичные методы предусмотрены в классах Float и Double).
В приведенном ниже примере программы демонстрируется применение метода parseInt(). В этой программе суммируется ряд целочисленных значений, вводимых пользователем.
С этой целью целочисленные значения считываются методом readLine() в виде числовых строк, которые затем преобразуются методом parseInt() в эквивалентные им числовые значения типа int.
/* | |
* , . | |
* | |
* parseInt() | |
*/ | |
import java.io.*; | |
public class ParseDemo { | |
public static void main(String[] args) throws IOException { | |
// BufferedReader, | |
// System.in | |
BufferedReader br = | |
new BufferedReader(new InputStreamReader(System.in)); | |
String str; | |
int i; | |
int sum = 0; | |
System.out.println(" , 0 "); | |
do { | |
str = br.readLine(); | |
try { | |
i = Integer.parseInt(str); | |
} catch (NumberFormatException e) { | |
System.out.println(" "); | |
i = 0; | |
} | |
sum += i; | |
System.out.println(" : " + sum); | |
} while (i != 0); | |
} | |
} |
Вывод программы что-то наподобие следующего, все зависит от введенных вами чисел:
, 0 | |
2 | |
: 2 | |
3 | |
: 5 | |
10 | |
: 15 | |
11 | |
: 26 | |
200 | |
: 226 | |
9 | |
: 235 | |
2.3 | |
: 235 |
Для преобразования целого числа в десятичную строку служат варианты метода toString(), определенные в классе Byte, Short, Integer или Long. В классах Integer и Long предоставляются также методы
В следующем примере программы демонстрируется преобразование целого числа в двоичную, шестнадцатеричную и восьмеричную строковую форму:
/* | |
* , | |
* | |
*/ | |
import java.io.*; | |
public class ParseDemo { | |
public static void main(String[] args) throws IOException { | |
// BufferedReader, | |
// System.in | |
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); | |
String str; | |
int i; | |
do { | |
System.out.println(" , 0 "); | |
str = br.readLine(); | |
try { | |
i = Integer.parseInt(str); | |
System.out.println(" " + i + " : " + | |
Integer.toBinaryString(i)); | |
System.out.println(" " + i + " : " + | |
Integer.toOctalString(i)); | |
System.out.println(" " + i + " : " + | |
Integer.toHexString(i)); | |
System.out.println(); | |
} catch (NumberFormatException e) { | |
System.out.println(" "); | |
i = 0; | |
} | |
} while (i != 0); | |
} | |
} |
Вывод программы что-то наподобие следующего, все зависит от введенных вами чисел:
, 0 | |
10 | |
10 : 1010 | |
10 : 12 | |
10 : a | |
, 0 | |
20 | |
20 : 10100 | |
20 : 24 | |
20 : 14 | |
, 0 | |
30 | |
30 : 11110 | |
30 : 36 | |
30 : 1e | |
, 0 |
pro-java.ru
Как преобразовать из int в String? — java
Лично я думаю, что «+» действительно выглядит так, как оригинал вопроса плакат утверждает «вонючий». Я использовал много языков OO помимо Java. Если бы этот синтаксис был уместен, то Java просто интерпретировала бы i, не нуждаясь в том, что «по желанию будет преобразовано в строку и сделает это, поскольку тип назначения недвусмыслен, и только одно значение будет передаваться справа, Другой выглядит как» трюк», чтобы обмануть компилятор, плохой mojo, когда рассматриваются разные версии Javac, сделанные другими производителями или с других платформ, если код когда-либо нужно портировать. Черт возьми, мне нужно, чтобы многие другие OOL просто возьмите Typecast: (String) i. winks
Учитывая мой способ обучения и простоту понимания такой конструкции при быстром прочтении кода, я голосую за метод Integer.toString(i). Забывая ns или two в том, как Java реализует вещи в фоновом режиме и String.valueOf(i), этот метод чувствует себя правильно для меня и точно говорит о том, что происходит: у меня есть и Integer, и я хочу, чтобы он преобразован в строку.
Хороший момент, сделанный пару раз, возможно, просто использование StringBuilder впереди — хороший ответ на создание строк, смешанных с текстом и ints или другими объектами, так как это то, что будет использоваться в фоновом режиме в любом случае?
Только мои два цента бросили в уже хорошо оплачиваемый котенок ответов на вопрос Мана… улыбается
ИЗМЕНИТЬ СОБСТВЕННЫЙ ОТВЕТ ПОСЛЕ НЕКОТОРЫХ ОТРАЖЕНИЙ:
Хорошо, хорошо, я думал об этом еще немного, и String.valueOf(i) также отлично подходит, и он говорит: Я хочу String, представляющий значение Integer. lol, английский намного сложнее разобрать, чем Java! Но я оставляю остальную часть своего ответа/комментария… Меня всегда учили использовать наименьший уровень метода/функциональной цепочки, если это возможно, и все еще сохраняют удобочитаемость, поэтому, если String.valueOf вызывает Integer.toString, то зачем использовать целый оранжевый если вы просто все равно очистите его, Хммм?
Чтобы прояснить мой комментарий о StringBuilder, я строю много строк с комбо в основном буквальным текстом и int, и они заканчиваются длинными и уродливыми вызовами вышеупомянутых подпрограмм, вложенных между символами +, так что мне кажется если они становятся объектами SB в любом случае, а метод append имеет перегрузки, может быть, это было бы проще, просто пойти вперед и использовать его… Итак, я думаю, что до 5 центов на этом сейчас, а? лол…
qaru.site