Cómo convertir un carácter en un valor numérico ASCII en Java

Rupam Yadav 12 octubre 2023
  1. Echar char a int para convertir un carácter en un valor ASCII en Java
  2. getBytes(StandardCharsets.US_ASCII) para obtener el valor ASCII de un carácter en Java
  3. String.chars() para convertir el carácter a valores ASCII en Java 9+
Cómo convertir un carácter en un valor numérico ASCII en Java

Este artículo descubrirá los métodos más fáciles y efectivos para convertir un carácter dado en un valor numérico ASCII en Java con ejemplos.

Echar char a int para convertir un carácter en un valor ASCII en Java

Una de las formas más fáciles de convertir el carácter en un valor numérico ASCII es lanzar el carácter a int. Como estamos hablando de un solo carácter, no podemos usar varios.

Echa un vistazo al siguiente ejemplo. Fíjate que estamos usando el carácter a encerrado entre comillas simples, haciendo que su tipo de datos sea 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 obtener el valor ASCII de un carácter en Java

Para que este ejemplo funcione, primero obtendremos nuestro carácter como una cadena y luego convertiremos esa cadena en un conjunto de bytes. StandardCharsets.US_ASCII se asegurará de que obtengamos el valor de salida correcto.

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

El beneficio de este enfoque es que podemos obtener directamente el valor ASCII de múltiples caracteres como los caracteres de una cadena.

Tenemos una cadena s que tiene 4 caracteres. Podemos obtener valores numéricos ASCII para todos estos caracteres como hemos hecho a continuación.

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 convertir el carácter a valores ASCII en Java 9+

En este método, usaremos una API añadida en Java 9. Podemos obtener un IntStream usando String.chars() y luego un IntStream de objetos Integer usando .boxed(). Nos dará numéricamente los valores ASCII que luego podemos poner en una List<Integr> para hacer un bucle.

Este ejemplo toma la cadena building como entrada e imprime los valores ASCII de cada carácter de la cadena.

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

Artículo relacionado - Java ASCII

Artículo relacionado - Java Char