Ich habe String name = "admin";
dann mache ich String char = name.substring(0,1); //char="a"
Ich möchte die char
in ihren ASCII -Wert (97) konvertieren. Wie kann ich das in Java tun?
Sehr einfach. Geben Sie einfach Ihre char
als int
ein.
char character = 'a';
int ascii = (int) character;
In Ihrem Fall müssen Sie zuerst das bestimmte Zeichen aus der Zeichenfolge holen und es dann umwandeln.
char character = name.charAt(0); // This gives the character 'a'
int ascii = (int) character; // ascii is now 97.
Obwohl Guss nicht explizit erforderlich ist, verbessert dies die Lesbarkeit.
int ascii = character; // Even this will do the trick.
nur ein anderer Ansatz
String s = "admin";
byte[] bytes = s.getBytes("US-ASCII");
bytes[0]
repräsentiert das ASCII eines .. und damit die anderen Zeichen im gesamten Array.
An Stelle von:
String char = name.substring(0,1); //char="a"
Sie sollten die charAt()
-Methode verwenden.
char c = name.charAt(0); // c='a'
int ascii = (int)c;
Wenn Sie den gesamten String in verkettete ASCII -Werte konvertieren möchten, können Sie Folgendes verwenden:
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);
wobei Sie 979899 als Ausgabe erhalten.
Gutschrift an das .
Ich habe es nur hier kopiert, damit es für andere bequem ist.
Die verschiedenen Antworten, die zeigen sollen, wie dies ausgeführt wird, sind alle falsch, da Java-Zeichen keine ASCII -Zeichen sind. Java verwendet eine Multibyte-Kodierung von Unicode-Zeichen. Der Unicode-Zeichensatz ist ein Super-Satz von ASCII. Es können also Zeichen in einem Java-String vorhanden sein, die nicht zu ASCII gehören. Solche Zeichen haben keinen numerischen Wert ASCII. Daher ist die Frage, wie der numerische Wert ASCII eines Java-Zeichens abgerufen werden kann, nicht zu beantworten.
Aber warum willst du das trotzdem? Was machen Sie mit dem Wert?
Wenn Sie den numerischen Wert so haben möchten, dass Sie den Java-String in einen ASCII - String konvertieren können, lautet die Frage " real ", "wie codiere ich einen Java-String als ASCII". Verwenden Sie dazu das Objekt StandardCharsets.US_ASCII.
Konvertieren Sie das Zeichen in int.
String name = "admin";
int ascii = name.toCharArray()[0];
Ebenfalls :
int ascii = name.charAt(0);
Werfen Sie einfach das Zeichen zu einem int.
char character = 'a';
int number = (int) character;
Der Wert von number
beträgt 97.
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);
Oder Sie können die Stream-API für 1 Zeichen oder einen String ab Java 1.8 verwenden:
public class ASCIIConversion {
public static void main(String[] args) {
String text = "adskjfhqewrilfgherqifvehwqfjklsdbnf";
text.chars()
.forEach(System.out::println);
}
}
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]);
}
}
}
Ein einfacher Weg dafür ist:
int character = 'a';
Wenn Sie "Zeichen" drucken, erhalten Sie 97.
Es ist einfach, hol dir den gewünschten Charakter und konvertiere ihn in int.
String name = "admin";
int ascii = name.charAt(0);
Wie @Raedwald hervorgehoben hat, berücksichtigt Java Unicode nicht alle Zeichen, um den Wert ASCII zu erhalten. Der richtige Weg (Java 1.7+) lautet wie folgt:
byte[] asciiBytes = "MyAscii".getBytes(StandardCharsets.US_ASCII);
String asciiString = new String(asciiBytes);
//asciiString = Arrays.toString(asciiBytes)
Ich weiß, dass dies bereits in mehreren Formen beantwortet wurde, aber hier ist mein Code, der alle Zeichen durchläuft.
Hier ist der Code, der mit der Klasse beginnt
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 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
}
Ich habe dasselbe versucht, aber die beste und einfachste Lösung wäre, charAt zu verwenden. Um auf die Indizes zuzugreifen, sollten wir ein ganzzahliges Array von [128] Größe erstellen.
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.
Wenn Sie die ASCII-Werte der vollständigen Zeichenfolge anzeigen möchten, müssen Sie dies tun.
String name = "admin";
char[] val = name.toCharArray();
for(char b: val) {
int c = b;
System.out.println("Ascii value of " + b + " is: " + c);
}
In diesem Fall lautet Ihre Ausgabe: Ascii-Wert von a ist: 97 Ascii-Wert von d ist: 100 Ascii-Wert von m ist: 109 Ascii-Wert von i ist: 105 Der Wert von n ist: 110
Wenn Sie den ASCII -Wert aller Zeichen in einer Zeichenfolge möchten. Sie können dies verwenden:
String a ="asdasd";
int count =0;
for(int i : a.toCharArray())
count+=i;
und wenn Sie möchten, dass ASCII ein einzelnes Zeichen in einem String ist, können Sie Folgendes tun:
(int)a.charAt(index);
Sie können die ASCII-Nummer mit diesem Code überprüfen.
String name = "admin";
char a1 = a.charAt(0);
int a2 = a1;
System.out.println("The number is : "+a2); // the value is 97
Wenn ich falsch liege, entschuldige mich.
mit Java 9 => String.chars ()
String input = "stackoverflow";
System.out.println(input.chars().boxed().collect(Collectors.toList()));
ausgabe - [115, 116, 97, 99, 107, 111, 118, 101, 114, 102, 108, 111, 119]
Dafür können wir gleich String Klassen verwenden
input.codePointAt(index);
Ich möchte noch einen Vorschlag machen, wie man eine ganze Zeichenkette mit Java 8 in entsprechende ASCII-Codes konvertiert, zum Beispiel "abcde" zu "979899100101".
String input = "abcde";
System.out.println(
input.codePoints()
.mapToObj((t) -> "" + t)
.collect(joining()));
Der einfache Weg, dies zu tun, ist:
Für ganzen String in 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]);
}
}
}
THe asscii value of each character is:
97 100 109 105 110
abc.charAt(i)
das einzelne Zeichen des String-Arrays an: Wenn wir jedes Zeichen dem Integer-Typ zuweisen, schreibt der Compiler eine Typumwandlung alsarr[i] = (int) character // Here, every individual character is coverted in ascii value
Aber für Einzelzeichen:
String name = admin;
asciiValue = (int) name.charAt(0);// for character 'a'
System.out.println(asciiValue);