945 Stimmen

Wie konvertiert man ein Zeichen in einen String?

Ich habe eine char und ich brauche eine String . Wie konvertiere ich von der einen in die andere Sprache?

694voto

Paul Bellora Punkte 52854

Sie können verwenden Character.toString(char) . Beachten Sie, dass diese Methode einfach einen Aufruf an String.valueOf(char) was auch funktioniert.

Wie bereits erwähnt, funktioniert die Verkettung von Zeichenfolgen auch als Abkürzung:

String s = "" + 's';

Aber das läuft darauf hinaus:

String s = new StringBuilder().append("").append('s').toString();

was weniger effizient ist, weil die StringBuilder wird unterstützt durch eine char[] (überzuteilt durch StringBuilder() a 16 ), nur damit dieses Array defensiv durch das resultierende String .

String.valueOf(char) "durch die Hintertür", indem sie die char in ein Einzelelement-Array und übergibt es an den privaten Konstruktor des Pakets String(char[], boolean) , wodurch das Kopieren des Arrays vermieden wird.

276voto

WarFox Punkte 4773

Ich habe die folgenden fünf sechs Methoden, um dies zu tun.

// Method #1
String stringValueOf = String.valueOf('c'); // most efficient

// Method #2
String stringValueOfCharArray = String.valueOf(new char[]{x});

// Method #3
String characterToString = Character.toString('c');

// Method #4
String characterObjectToString = new Character('c').toString();

// Method #5
// Although this approach seems very simple, 
// this is less efficient because the concatenation
// expands to a StringBuilder.
String concatBlankString = 'c' + "";

// Method #6
String fromCharArray = new String(new char[]{x});

Anmerkung: Zeichen.toString(char) gibt zurück. String.valueOf(char) . Beide sind also praktisch gleich.

String.valueOf(char[] value) ruft auf. new String(char[] value) die wiederum die value Char-Array.

public String(char value[]) {
    this.value = Arrays.copyOf(value, value.length);
}

Andererseits String.valueOf(char value) ruft folgendes auf package private constructor.

String(char[] value, boolean share) {
    // assert share : "unshared not supported";
    this.value = value;
}

Quellcode von String.java sur Java 8-Quellcode

Daher String.valueOf(char) scheint die effizienteste Methode zu sein, sowohl in Bezug auf den Speicherplatz als auch auf die Geschwindigkeit, um die char a String .

Quellen:

  1. Wie konvertiert man in Java primitive Zeichen in String?
  2. Wie konvertiert man Char in String in Java mit Beispiel

59voto

sactiw Punkte 20857

Nachfolgend finden Sie verschiedene Möglichkeiten zur Konvertierung von char c in String s (in abnehmender Reihenfolge der Geschwindigkeit und Effizienz)

char c = 'a';
String s = String.valueOf(c);             // fastest + memory efficient
String s = Character.toString(c);
String s = new String(new char[]{c});
String s = String.valueOf(new char[]{c});
String s = new Character(c).toString();
String s = "" + c;                        // slowest + memory inefficient

34voto

Wayne Punkte 58002

Verwenden Sie eine der folgenden Möglichkeiten:

String str = String.valueOf('c');
String str = Character.toString('c');
String str = 'c' + "";

33voto

Tom Punkte 2843

Verwenden Sie die Character.toString() Methode wie folgt:

char mChar = 'l';
String s = Character.toString(mChar);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X