web-dev-qa-db-fra.com

Java - Convertit un entier en chaîne

Donné un numéro:

int number = 1234;

Quel serait le "meilleur" moyen de convertir cela en chaîne:

String stringNumber = "1234";

J'ai essayé de chercher (googler) une réponse, mais personne ne semblait "digne de confiance".

376
Trufa

Il y a plusieurs façons:

  • String.valueOf(number) (ma préférence)
  • "" + number (Je ne sais pas comment le compilateur le gère, c'est peut-être aussi efficace que ci-dessus)
  • Integer.toString(number)
781
Bozho

La classe entière a la méthode statique toString () - vous pouvez l'utiliser:

int i = 1234;
String str = Integer.toString(i);

Retourne un objet String représentant l'entier spécifié. L'argument est converti en représentation décimale signée et renvoyé sous forme de chaîne, exactement comme si l'argument et la base 10 étaient fournis en tant qu'arguments à la méthode toString (int, int).

50
lukastymo

Utilisez toujours soit String.valueOf(number) ou Integer.toString(number).

L'utilisation de "" + numéro est une surcharge et permet:

StringBuilder sb = new StringBuilder();
sb.append("");
sb.append(number);
return sb.toString();
38
AllThatICode

Cela fera l'affaire. Assez digne de confiance. :)

    ""+number;

Juste pour clarifier, cela fonctionne et est acceptable à utiliser sauf si vous recherchez une micro-optimisation.

36
Nishant

Je sais comment convertir un entier en une chaîne en utilisant le code suivant:

Integer.toString(int);

et

String.valueOf(int);

Si vous aviez un entier i et une chaîne s, les conditions suivantes s'appliqueraient:

int i;
String s = Integer.toString(i); or
String s = String.valueOf(i);

Si vous vouliez convertir une chaîne "s" en un entier "i", voici ce qui fonctionnerait:

i = Integer.valueOf(s).intValue();
16
danjonila

C'est la méthode que j'ai utilisée pour convertir l'entier en chaîne. Corrigez-moi si je me suis trompé.

/**
 * @param a
 * @return
 */
private String convertToString(int a) {

    int c;
    char m;
    StringBuilder ans = new StringBuilder();
    // convert the String to int
    while (a > 0) {
        c = a % 10;
        a = a / 10;
        m = (char) ('0' + c);
        ans.append(m);
    }
    return ans.reverse().toString();
}
2
Jegan