Comment convertir un caractère en valeur numérique ASCII en Java
- Conversion d’un caractère en valeur ASCII en Java
-
getBytes(StandardCharsets.US_ASCII)
pour obtenir la valeur ASCII d’un caractère en Java -
String.chars()
pour convertir les caractères en valeurs ASCII en Java 9+
Cet article découvre les méthodes les plus simples et les plus efficaces pour convertir un caractère donné en une valeur numérique ASCII en Java, avec des exemples.
Conversion d’un caractère en valeur ASCII en Java
L’une des façons les plus simples de convertir le caractère en une valeur numérique ASCII est de le mettre en int. Comme il s’agit d’un seul caractère, nous ne pouvons pas utiliser plusieurs caractères.
Regardez l’exemple ci-dessous. Remarquez que nous utilisons le caractère a
entre guillemets simples, ce qui fait que ses données sont de type char
.
public class Main {
public static void main(String[] args) {
int asciiValue = 'a';
System.out.println("ASCII Numeric Value: " + asciiValue);
}
}
Production:
ASCII Numeric Value: 97
getBytes(StandardCharsets.US_ASCII)
pour obtenir la valeur ASCII d’un caractère en Java
Pour que cet exemple fonctionne, nous allons d’abord obtenir notre caractère sous la forme d’une chaîne de caractères, puis convertir cette chaîne en un tableau d’octets. La commande StandardCharsets.US_ASCII
nous permettra d’obtenir la bonne valeur de sortie.
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]);
}
}
Production:
ASCII Numeric Value: 98
L’avantage de cette approche est que nous pouvons obtenir directement la valeur ASCII de plusieurs caractères, puisque les caractères sont dans une chaîne.
Nous avons une chaîne s
de 4 caractères. Nous pouvons obtenir des valeurs numériques ASCII pour tous ces caractères comme nous l’avons fait ci-dessous.
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]);
}
}
Production:
ASCII Numeric Value: 98
ASCII Numeric Value: 97
ASCII Numeric Value: 108
ASCII Numeric Value: 108
String.chars()
pour convertir les caractères en valeurs ASCII en Java 9+
Dans cette méthode, nous utiliserons une API ajoutée en Java 9. Nous pouvons obtenir un IntStream
en utilisant String.chars()
et ensuite un Stream d’objets Integer
en utilisant .boxed()
. Cela nous donnera numériquement les valeurs ASCII que nous pourrons ensuite mettre dans une List<Integer>
pour la boucler.
Cet exemple prend la chaîne “building” comme entrée et imprime les valeurs ASCII de chaque caractère de la chaîne.
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);
}
}
}
Production:
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