wake-up-neo.com

Java - Konvertiert eine Ganzzahl in einen String

Gegeben eine Nummer:

int number = 1234;

Welches wäre der "beste" Weg, dies in einen String umzuwandeln:

String stringNumber = "1234";

Ich habe versucht, nach einer Antwort zu suchen (googeln), aber nicht viele schienen "vertrauenswürdig" zu sein.

376
Trufa

Es gibt mehrere Möglichkeiten:

  • String.valueOf(number) (meine Präferenz)
  • "" + number (Ich weiß nicht, wie der Compiler damit umgeht, vielleicht ist es so effizient wie oben)
  • Integer.toString(number)
781
Bozho

Integer-Klasse hat statische Methode toString () - Sie können es verwenden:

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

Gibt ein String-Objekt zurück, das die angegebene Ganzzahl darstellt. Das Argument wird in eine vorzeichenbehaftete Dezimaldarstellung konvertiert und als Zeichenfolge zurückgegeben, genau so, als ob das Argument und die Basis 10 als Argumente für die Methode toString (int, int) übergeben würden.

50
lukastymo

Verwenden Sie immer entweder String.valueOf(number) oder Integer.toString(number).

Die Verwendung von "" + Nummer ist ein Overhead und führt Folgendes aus:

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

Das wird es tun. Ziemlich vertrauenswürdig. :)

    ""+number;

Nur zur Verdeutlichung: Dies funktioniert und ist akzeptabel, es sei denn, Sie suchen nach einer Mikrooptimierung.

36
Nishant

Ich kann eine Ganzzahl folgendermaßen in eine Zeichenfolge konvertieren:

Integer.toString(int);

und

String.valueOf(int);

Wenn Sie eine Ganzzahl i und eine Zeichenfolge s hätten, würde Folgendes gelten:

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

Wenn Sie eine Zeichenfolge "s" in eine Ganzzahl "i" konvertieren möchten, funktioniert Folgendes:

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

Dies ist die Methode, die ich verwendet habe, um die Ganzzahl in Zeichenfolge zu konvertieren. Korrigieren Sie mich, wenn ich falsch gemacht habe.

/**
 * @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