web-dev-qa-db-fra.com

Comment convertir ASCII code (0-255) en une chaîne du caractère associé?

J'ai un int entier compris entre 0 et 255 et je souhaite créer une chaîne (de longueur 1) de sorte que la valeur ASCII de ce caractère unique soit l'entier spécifié.

Existe-t-il un moyen simple de faire cela en Java?

exemple: 

65  -> "A"
102 -> "f"
109
Belgi

System.out.println((char)65); afficherait "A"

51
RylandAlmanza

String.valueOf _(_ Character.toChars(int) _)_

En supposant que le nombre entier, comme vous le dites, est compris entre 0 et 255, vous obtiendrez un tableau contenant un seul caractère provenant de _Character.toChars_, qui deviendra une chaîne à un seul caractère lorsqu'il sera passé à _String.valueOf_.

L'utilisation de _Character.toChars_ est préférable aux méthodes impliquant un transtypage de int à char (c'est-à-dire _(char) i_) pour un certain nombre de raisons, notamment le fait que _Character.toChars_ jette un IllegalArgumentException si vous ne validez pas correctement l'entier alors que le transtideur avalera l'erreur (conformément à spécification de conversions de primitives restrictives ), en générant potentiellement une sortie autre que celle que vous souhaitiez.

28
zjs
int number = 65;
char c = (char)number;

c'est une solution simple

7
athena
new String(new char[] { 65 }))

Vous obtiendrez une chaîne de longueur un, dont le caractère unique porte le code (ASCII) 65. En Java, les caractères sont des types de données numériques.

4
Paul Cager

On peut parcourir de a à z comme ceci

int asciiForLowerA = 97;
int asciiForLowerZ = 122;
for(int asciiCode = asciiForLowerA; asciiCode <= asciiForLowerZ; asciiCode++){
    search(sCurrentLine, searchKey + Character.toString ((char) asciiCode));
}
1
Tez Kurmala
    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);
0

Une façon plus simple de faire la même chose:

Tapez le nombre entier converti en caractère, laissez int n le nombre entier,

Char c=(char)n;
System.out.print(c)//char c will store the converted value.
0
Entriple Aardee

Pourquoi ne pas le simplifier pour une méthode qui retourne le caractère ascii?

public char toAscii (int input) {
    return (char)input;
}
0
Raphael Spoerri