J'en ai un char
et j'en ai besoin String
. Comment convertir de l'un à l'autre?
java
string
char
type-conversion
Landon Kuhn
la source
la source
Réponses:
Vous pouvez utiliser
Character.toString(char)
. Notez que cette méthode renvoie simplement un appel àString.valueOf(char)
, qui fonctionne également.Comme d'autres l'ont noté, la concaténation de chaînes fonctionne également comme un raccourci:
Mais cela se résume à:
ce qui est moins efficace car le
StringBuilder
est soutenu par unchar[]
(sur-alloué parStringBuilder()
à16
), uniquement pour que ce tableau soit copié de manière défensive par le résultatString
.String.valueOf(char)
"obtient dans la porte arrière" en enveloppant lechar
dans un tableau à un seul élément et en le passant au constructeur privé du packageString(char[], boolean)
, ce qui évite la copie du tableau.la source
new StringBuilder("").append('s').toString();
Bonne question. J'ai des
cinq6 méthodes suivantes pour le faire.String.valueOf(char[] value)
invoquenew String(char[] value)
, qui à son tour définit levalue
tableau char.D'un autre côté,
String.valueOf(char value)
invoque le constructeur privé du package suivant .Le code source de
String.java
dans le code source Java 8la source
Vous trouverez ci-dessous différentes façons de convertir en char c en String s (par ordre décroissant de vitesse et d'efficacité)
la source
Utilisez la
Character.toString()
méthode comme ceci:la source
Utilisez l'un des éléments suivants:
la source
Comme l'a indiqué @WarFox - il existe 6 méthodes pour convertir char en chaîne. Cependant, le plus rapide serait via la concaténation, malgré les réponses ci-dessus affirmant que c'est le cas
String.valueOf
. Voici un benchmark qui prouve que:Et résultat:
Comme vous pouvez le voir, le plus rapide serait
c + ""
ou"" + c
;Cette différence de performances est due à l'
-XX:+OptimizeStringConcat
optimisation. Vous pouvez en lire plus ici .la source
Essayez ceci:
Character.toString(aChar)
ou simplement ceci:aChar + ""
la source
Nous avons différentes manières de convertir un fichier
char
enString
. Une façon consiste à utiliser la méthode statiquetoString()
enCharacter
classe:En fait, cette
toString
méthode utilise en interne lavalueOf
méthode de laString
classe qui utilise le tableau char:La deuxième façon consiste donc à utiliser ceci directement:
Cette
valueOf
méthode enString
classe utilise le tableau char:Donc, la troisième façon consiste à utiliser un tableau anonyme pour encapsuler un seul caractère, puis le passer au
String
constructeur:La quatrième façon consiste à utiliser la concaténation:
Cela utilisera en fait la
append
méthode de laStringBuilder
classe qui est en fait préférée lorsque nous faisons la concaténation en boucle.la source
Voici quelques méthodes, sans ordre particulier:
la source
Je convertis Char Array en String
la source
J'ai essayé les suggestions mais j'ai fini par les mettre en œuvre comme suit
la source