Ich habe ein int int im Bereich 0-255, und ich möchte einen String (mit Länge 1) erstellen, so dass der ASCII - Wert dieses einzelnen Zeichens die angegebene Ganzzahl ist.
Gibt es eine einfache Möglichkeit, dies in Java zu tun?
beispiel:
65 -> "A"
102 -> "f"
System.out.println((char)65);
Würde "A" drucken
String.valueOf
(
Character.toChars(int)
)
Angenommen, die Ganzzahl liegt, wie Sie sagen, zwischen 0 und 255, erhalten Sie ein Array mit einem einzelnen Zeichen von Character.toChars
zurück, das bei der Übergabe an String.valueOf
zu einer Zeichenfolge mit nur einem Zeichen wird.
Die Verwendung von Character.toChars
ist aus einer Reihe von Gründen den Methoden vorzuziehen, die eine Umwandlung von int
in char
(dh (char) i
) beinhalten, einschließlich der Tatsache, dass Character.toChars
eine IllegalArgumentException
auslöst, wenn Sie die Ganzzahl nicht richtig validieren, während die Umwandlung den Fehler verschluckt (per Einschränkung der primitiven Konvertierungsspezifikation ), wodurch möglicherweise eine andere als die von Ihnen beabsichtigte Ausgabe erzielt wird.
int number = 65;
char c = (char)number;
es ist eine einfache Lösung
new String(new char[] { 65 }))
Sie erhalten am Ende eine Zeichenfolge der Länge eins, deren Einzelzeichen den (ASCII-) Code 65 hat. In Java sind Zeichen numerische Datentypen.
Man kann von a bis z so iterieren
int asciiForLowerA = 97;
int asciiForLowerZ = 122;
for(int asciiCode = asciiForLowerA; asciiCode <= asciiForLowerZ; asciiCode++){
search(sCurrentLine, searchKey + Character.toString ((char) asciiCode));
}
for (int i = 0; i < 256; i++) {
System.out.println(i + " -> " + (char) i);
}
char lowercase = 'f';
int offset = (int) 'a' - (int) 'A';
char uppercase = (char) ((int) lowercase - offset);
System.out.println("The uppercase letter is " + uppercase);
String numberString = JOptionPane.showInputDialog(null,
"Enter an ASCII code:",
"ASCII conversion", JOptionPane.QUESTION_MESSAGE);
int code = (int) numberString.charAt(0);
System.out.println("The character for ASCII code "
+ code + " is " + (char) code);
Ein einfacher Weg, das Gleiche zu tun:
Geben Sie die Ganzzahl in Zeichen um. Geben Sie int n
die Ganzzahl.
Char c=(char)n;
System.out.print(c)//char c will store the converted value.
Warum nicht zu einer Methode vereinfachen, die das ASCII-Zeichen zurückgibt?
public char toAscii (int input) {
return (char)input;
}