Рубрики
Без рубрики

Java – Преобразование символов в ASCII

В этой статье показано, как преобразовать символ в значение ASCII. В Java мы можем привести char к int, чтобы получить значение ASCII.

В Java мы можем привести char к int , чтобы получить значение ASCII char .

  char aChar = 'a';
  //int ascii = (int) aChar;      // explicitly cast, optional, improves readability
  int ascii = aChar;              // implicit cast, auto cast char to int,
  System.out.println(ascii);      // 97

Явный бросок (int)символ является необязательным, если мы присвоим символ целому числу, Java автоматически приведет символ к int .

1. Преобразовать символ в ASCII

Этот пример Java преобразует символ в значение ASCII, и мы можем использовать символ .Точары чтобы вернуть значение ASCII обратно в символ.

package com.mkyong.basic;

public class JavaAsciiExample1 {

    public static void main(String[] args) {

        // convert char to ASCII
        char aChar = 'a';
        int ascii = aChar;              // auto cast char to int
        System.out.println(ascii);      // 97

        // convert ASCII to char
        char[] chars = Character.toChars(ascii);
        System.out.println(chars);      // a

        char aChar2 = (char) ascii;     // or downcast int to char, it works.
        System.out.println(aChar2);     // a
    }
}

Выход

97
a
a

В ASCII десятичная дробь от 0 до 31 и 127 представляют материалы, связанные с файлами; печатаемые символы от 32 до 126. Чтобы преобразовать ASCII обратно в символ или строку, мы можем выполнить простую проверку диапазона, чтобы убедиться, что это допустимое значение ASCII.

  public static char asciiToChar(final int ascii) {

      if (ascii < 0 || ascii >= 127) {
          throw new IllegalArgumentException("Invalid ASCII value!");
      }

      return (char) ascii;
  }

2. Преобразование строки в ASCII

2.1 Мы можем использовать String.getBytes(стандартные наборы символов. US_ASCII) для преобразования строки в массив байтов |/байт [] и передайте байт в int , чтобы получить значение ASCII.

package com.mkyong.basic;

import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;

public class JavaAsciiExample2 {

    public static void main(String[] args) {

        String input = "abcdefg";
        byte[] bytes = input.getBytes(StandardCharsets.US_ASCII);

                                                    // print the first byte
        System.out.println(bytes[0]);               // 97

        List result = new ArrayList<>();   // convert bytes to ascii
        for (byte aByte : bytes) {
            int ascii = (int) aByte;                // byte -> int
            result.add(ascii);
        }

        System.out.println(result.toString());      // [97, 98, 99, 100, 101, 102, 103]

    }

}

Выход

97
[97, 98, 99, 100, 101, 102, 103]

2.2 Java 9, есть новый API String.char() для преобразования строки в Входной поток , за которым следует .в штучной упаковке () , и он преобразуется в Поток <Целое число> .

    String input = "abcdefg";
    List collect = input
                                .chars()                        // IntStream
                                .boxed()                        // Stream, ASCII values
                                .collect(Collectors.toList());  // Returns a List

    collect.forEach(System.out::println);

Выход

97
98
99
100
101
102
103

2.3 Для преобразования значений ASCII обратно в строку мы можем использовать символ .toString , он принимает целое число (кодовую точку) в качестве аргумента и возвращает строку.

package com.mkyong.basic;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class JavaAsciiExample3 {

    public static void main(String[] args) {

        List ascii = Arrays.asList(97, 98, 99, 100, 101, 102, 103);

        // Java 8 stream
        String result = ascii.stream()
                .map(x -> Character.toString(x))    // int -> string
                .collect(Collectors.joining());     // return a string

        System.out.println(result);
    }

}

Выход

  abcdefg

Рекомендации

Оригинал: “https://mkyong.com/java/how-to-convert-character-to-ascii-in-java/”