java — Как лучше переводить число в строку?

Stack Overflow на русском

Loading…

  1. 0
  2. +0
    • Тур Начните с этой страницы, чтобы быстро ознакомиться с сайтом
    • Справка Подробные ответы на любые возможные вопросы
    • Мета Обсудить принципы работы и политику сайта
    • О нас Узнать больше о компании Stack Overflow
    • Бизнес Узнать больше о поиске разработчиков или рекламе на сайте

ru.stackoverflow.com

Взаимное преобразование чисел и символьных строк 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 предоставляются также методы

toBinaryString(), toHexString() и toOctalString(), преобразующие числовое значение в двоичную, шестнадцатеричную и восьмеричную строки соответственно.

В следующем примере программы демонстрируется преобразование целого числа в двоичную, шестнадцатеричную и восьмеричную строковую форму:

/*
 *     ,  
 *   
 */

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