HOWTO · Java
Cómo convertir un carácter en un valor numérico ASCII en Java
Este artículo introduce la conversión de un carácter a un valor numérico ASCII en Java con varios métodos y ejemplos.
En esta página
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