Como converter caracteres em valores numéricos ASCII em Java

Rupam Yadav 12 outubro 2023
  1. Converter char para int para converter um caractere em valor ASCII em Java
  2. getBytes(StandardCharsets.US_ASCII) para obter o valor ASCII de um caractere em Java
  3. String.chars() para converter caracteres para valores ASCII em Java 9+
Como converter caracteres em valores numéricos ASCII em Java

Este artigo irá descobrir os métodos mais fáceis e eficazes para converter um determinado caractere em um valor numérico ASCII em Java com exemplos.

Converter char para int para converter um caractere em valor ASCII em Java

Uma das maneiras mais fáceis de converter o caractere para um valor numérico ASCII é lançar o caractere para int. Como estamos falando de um único caractere, não podemos usar vários caracteres.

Confira o exemplo abaixo. Note que estamos utilizando o caractere a entre aspas simples, fazendo seu tipo de dados como char.

public class Main {
  public static void main(String[] args) {
    int asciiValue = 'a';
    System.out.println("ASCII Numeric Value: " + asciiValue);
  }
}

Resultado:

ASCII Numeric Value: 97

getBytes(StandardCharsets.US_ASCII) para obter o valor ASCII de um caractere em Java

Para que este exemplo funcione, primeiro obteremos nosso caráter como uma string e depois converteremos essa string em um array de bytes. Os StandardCharsets.US_ASCII garantirão que obteremos o valor de saída correto.

import java.nio.charset.StandardCharsets;

public class Main {
  public static void main(String[] args) {
    String s = "b";
    byte[] bytes = s.getBytes(StandardCharsets.US_ASCII);
    System.out.println("ASCII Numeric Value: " + bytes[0]);
  }
}

Resultado:

ASCII Numeric Value: 98

O benefício desta abordagem é que podemos obter diretamente o valor ASCII de múltiplos caracteres, uma vez que os caracteres estão em uma string.

Temos uma string s com 4 caracteres. Podemos obter valores numéricos ASCII para todos esses caracteres, como fizemos abaixo.

import java.nio.charset.StandardCharsets;

public class Main {
  public static void main(String[] args) {
    String s = "ball";
    byte[] bytes = s.getBytes(StandardCharsets.US_ASCII);
    System.out.println("ASCII Numeric Value of b: " + bytes[0]);
    System.out.println("ASCII Numeric Value of a: " + bytes[1]);
    System.out.println("ASCII Numeric Value of l: " + bytes[2]);
    System.out.println("ASCII Numeric Value of l: " + bytes[3]);
  }
}

Resultado:

ASCII Numeric Value: 98
ASCII Numeric Value: 97
ASCII Numeric Value: 108
ASCII Numeric Value: 108

String.chars() para converter caracteres para valores ASCII em Java 9+

Neste método, utilizaremos uma API adicionada em Java 9. Podemos obter um IntStream utilizando String.chars() e depois um Stream de objetos Integer utilizando .boxed(). Ele nos dará numericamente os valores ASCII que podemos então colocar em uma List<Integer> para passar por ela.

Este exemplo toma a string building como entrada e imprime os valores ASCII de cada caractere da string.

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

public class Main {
  public static void main(String[] args) {
    String stringValue = "building";
    List<Integer> listOfIntegers = stringValue.chars().boxed().collect(Collectors.toList());

    for (int i : listOfIntegers) {
      System.out.println("ASCII value " + i);
    }
  }
}

Resultado:

ASCII value 98
ASCII value 117
ASCII value 105
ASCII value 108
ASCII value 100
ASCII value 105
ASCII value 110
ASCII value 103
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Artigo relacionado - Java ASCII

Artigo relacionado - Java Char