Взаимное преобразование чисел и символьных строк Java

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

Один комментарий на “Взаимное преобразование чисел и символьных строк Java

  1. Очень легко и доступно читаются Ваши статьи. У Вас есть твитер, чтобы быть в курсе ваших новых работ. Спасибо.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *