Como converter caracteres em valores numéricos ASCII em Java
-
Converter
char
paraint
para converter um caractere em valor ASCII em Java -
getBytes(StandardCharsets.US_ASCII)
para obter o valor ASCII de um caractere em Java -
String.chars()
para converter caracteres para valores ASCII em Java 9+
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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn