Convertir un caractère en valeur numérique ASCII en java
19 réponses
très simple. Il suffit de lancer votre char
comme un int
.
char character = 'a';
int ascii = (int) character;
dans votre cas, vous avez besoin d'obtenir le caractère spécifique de la chaîne d'abord et ensuite le lancer.
char character = name.charAt(0); // This gives the character 'a'
int ascii = (int) character; // ascii is now 97.
bien que cast ne soit pas explicitement requis, mais il améliore la lisibilité.
int ascii = character; // Even this will do the trick.
une approche différente
String s = "admin";
byte[] bytes = s.getBytes("US-ASCII");
bytes[0]
représentera ascii d'un.. et donc les autres personnages de l'ensemble du tableau.
au lieu de ceci:
String char = name.substring(0,1); //char="a"
vous devez utiliser la méthode charAt()
.
char c = name.charAt(0); // c='a'
int ascii = (int)c;
si vous voulez convertir la chaîne entière en valeurs ASCII concaténées, alors vous pouvez utiliser ce -
String str = "abc"; // or anything else
StringBuilder sb = new StringBuilder();
for (char c : str.toCharArray())
sb.append((int)c);
BigInteger mInt = new BigInteger(sb.toString());
System.out.println(mInt);
où vous obtiendrez 979899 en sortie.
crédit à ce .
Je l'ai juste copié ici pour qu'il soit pratique pour les autres.
les nombreuses réponses qui prétendent montrer comment faire tout cela sont fausses parce que les caractères Java ne sont pas des caractères ASCII. Java utilise un encodage multibyte de caractères Unicode. Le jeu de caractères Unicode est un super jeu D'ASCII. Il peut donc y avoir des caractères dans une chaîne Java qui n'appartiennent pas à ASCII. Comme ces caractères N'ont pas de valeur numérique ASCII, il est impossible de savoir comment obtenir la valeur numérique ASCII d'un caractère Java.
mais pourquoi tu veux faire ça quand même? Qu'allez-vous faire avec la valeur?
si vous voulez la valeur numérique pour pouvoir convertir la chaîne Java en chaîne ASCII, la question est" Comment dois-je encoder une chaîne Java en ASCII". Pour cela, utilisez l'objet StandardCharsets.US_ASCII.
Convertir le char en int.
String name = "admin";
int ascii = name.toCharArray()[0];
aussi:
int ascii = name.charAt(0);
vient de lancer le char à un int.
char character = 'a';
int number = (int) character;
la valeur de number
sera 97.
c'est simple, obtenir le personnage que vous voulez, et le convertir en int.
String name = "admin";
int ascii = name.charAt(0);
je sais que cela a déjà été répondu sous plusieurs formes, mais voici mon morceau de code avec un regard pour passer en revue tous les caractères.
voici le code, commencé par la classe
public class CheckChValue { // Class name
public static void main(String[] args) { // class main
String name = "admin"; // String to check it's value
int nameLenght = name.length(); // length of the string used for the loop
for(int i = 0; i < nameLenght ; i++){ // while counting characters if less than the length add one
char character = name.charAt(i); // start on the first character
int ascii = (int) character; //convert the first character
System.out.println(character+" = "+ ascii); // print the character and it's value in ascii
}
}
}
String str = "abc"; // or anything else
// Stores strings of integer representations in sequence
StringBuilder sb = new StringBuilder();
for (char c : str.toCharArray())
sb.append((int)c);
// store ascii integer string array in large integer
BigInteger mInt = new BigInteger(sb.toString());
System.out.println(mInt);
String name = "admin";
char[] ch = name.toString().toCharArray(); //it will read and store each character of String and store into char[].
for(int i=0; i<ch.length; i++)
{
System.out.println(ch[i]+
"-->"+
(int)ch[i]); //this will print both character and its value
}
public class Ascii {
public static void main(String [] args){
String a=args[0];
char [] z=a.toCharArray();
for(int i=0;i<z.length;i++){
System.out.println((int)z[i]);
}
}
}
comme @Raedwald l'a souligné, L'Unicode Java ne répond pas à tous les caractères pour obtenir une valeur ASCII. La manière correcte (Java 1.7+) est la suivante:
byte[] asciiBytes = "MyAscii".getBytes(StandardCharsets.US_ASCII);
String asciiString = new String(asciiBytes);
//asciiString = Arrays.toString(asciiBytes)
un moyen facile pour cela est:
int character = 'a';
si vous imprimez "caractère", vous obtenez 97.
ou vous pouvez utiliser L'API Stream pour 1 caractère ou une chaîne commençant en Java 1.8:
public class ASCIIConversion {
public static void main(String[] args) {
String text = "adskjfhqewrilfgherqifvehwqfjklsdbnf";
text.chars()
.forEach(System.out::println);
}
}
vous pouvez vérifier le numéro ASCIIs avec ce code.
String name = "admin";
char a1 = a.charAt(0);
int a2 = a1;
System.out.println("The number is : "+a2); // the value is 97
si je me trompe, toutes mes excuses.
si vous voulez la valeur ASCII de tous les caractères d'une chaîne. Vous pouvez utiliser ceci:
String a ="asdasd";
int count =0;
for(int i : a.toCharArray())
count+=i;
et si vous voulez ASCII d'un seul caractère dans une chaîne de caractères, vous pouvez choisir:
(int)a.charAt(index);
j'essayais la même chose, mais la meilleure solution serait d'utiliser charAt et pour accéder aux Index nous devrions créer un tableau entier de taille [128].
String name = "admin";
int ascii = name.charAt(0);
int[] letters = new int[128]; //this will allocate space with 128byte size.
letters[ascii]++; //increments the value of 97 to 1;
System.out.println("Output:" + ascii); //Outputs 97
System.out.println("Output:" + letters[ascii]); //Outputs 1 if you debug you'll see 97th index value will be 1.
dans le cas où vous voulez afficher des valeurs ascii de chaîne complète, vous devez le faire.
String name = "admin";
char[] val = name.toCharArray();
for(char b: val) {
int c = b;
System.out.println("Ascii value of " + b + " is: " + c);
}
Votre sortie, dans ce cas, sera: Valeur Ascii d'Un is: 97 Valeur Ascii de D est: 100 Valeur Ascii de m est: 109 La valeur Ascii de i est de: 105 Valeur Ascii de n est: 110
Le moyen facile de le faire est:
pour chaîne entière en ASCII:
public class ConvertToAscii{
public static void main(String args[]){
String abc = "admin";
int []arr = new int[abc.length()];
System.out.println("THe asscii value of each character is: ");
for(int i=0;i<arr.length;i++){
arr[i] = abc.charAt(i); // assign the integer value of character i.e ascii
System.out.print(" "+arr[i]);
}
}
}
la sortie est:
THe asscii value of each character is:
97 100 109 105 110
Ici,
abc.charAt(i)
donne le caractère unique du tableau de cordes:
Lorsque nous assignons chaque caractère au type entier puis, la conversion de type do du compilateur comme,
arr[i] = (int) character // Here, every individual character is coverted in ascii value
mais, pour un seul caractère:
String name = admin;
asciiValue = (int) name.charAt(0);// for character 'a'
System.out.println(asciiValue);