Comment faire pour convertir un char à une Chaîne de caractères?
J'ai un char
et j'ai besoin d'un String
. Comment puis-je convertir de l'un à l'autre?
- Downvoted? Pourquoi aurais-je poser une simple question? Parce que Google lui manque vraiment une évidente résultat de la recherche pour cette question. En mettant ce ici, nous allons le changer.
- je suis entièrement d'accord avec votre opinion. J'ai jusqu'a voté cette de se débarrasser du vote négatif. Je crois fermement dans la prise de googler des sujets comme cela plus facile pour tout le monde. =)
- Votre position est défendable (méta question?); Je suppose que nous pouvons supposer que les downvote est pour "manque de recherche".
- J'ai fait faire des recherches. J'ai eu à cliquer sur quelques-uns des résultats de recherche et de regarder de longs messages de blog et les annonces.
- Votre recherche comprennent la lecture de la documentation de la classe String?
- La plupart des questions peuvent être répondues avec RTFM, mais ce n'est pas très utile. Pourquoi ne pas laisser les gens qui trouve la question upvote et laisser les choses suivre leur cours?
- Seulement que StackOverflow est devenu l'arrêt de la première pour la recherche. Si il y a un StackOverlfow lien dans les 10 premiers Résultats de Google je com ici.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
Caractère.toString(char)
. Notez que cette méthode renvoie simplement un appel àString.valueOf(char)
, qui travaille aussi.Comme d'autres l'ont noté, la concaténation de chaîne fonctionne comme un raccourci ainsi:
Mais cette compile vers:
qui est moins efficace car la
StringBuilder
est soutenu par unechar[]
(plus affectés parStringBuilder()
à16
), seulement pour que la matrice soit défensivement copié par laString
.String.valueOf(char)
"est dans la porte arrière" par emballage de lachar
dans un seul élément de tableau et de le transmettre le paquet constructeur privéString(char[], boolean)
, ce qui évite le tableau copie.new StringBuilder("").append('s').toString();
Belle question. J'ai de la suite de
cinq6 méthodes pour le faire.String.valueOf(char[] value)
appellenew String(char[] value)
, qui définit à son tour lavalue
char tableau.D'autre part
String.valueOf(char value)
appelle la suite de paquet constructeur privé.Code Source de
String.java
dans Java 8 code sourceCi-dessous sont les différentes façons de convertir en char c String s (dans l'ordre décroissant de la vitesse et de l'efficacité)
Utiliser les produits suivants:
Utiliser le
Character.toString()
méthode comme suit:Essayez ceci:
Character.toString(aChar)
ou tout simplement ceci:aChar + ""
char
...Comme @WarFox dit - il y a 6 méthodes pour convertir en char à chaîne. Cependant, le plus rapide serait par concaténation, malgré les réponses ci-dessus en précisant qu'il est
String.valueOf
. Ici est l'indice de référence 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 à
-XX:+OptimizeStringConcat
d'optimisation. Vous pouvez lire à ce sujet ici.Nous avons différentes façons de convertir un
char
àString
. Un façon est de rendre l'utilisation de la méthode statiquetoString()
dansCharacter
classe:En fait, ce
toString
méthode interne rend l'utilisation devalueOf
méthode deString
classe qui rend l'utilisation de char tableau:Donc deuxième façon est d'utiliser directement:
Ce
valueOf
méthode dansString
classe rend l'utilisation de char tableau:De sorte que le troisième façon est d'utiliser un tableau anonyme pour envelopper un caractère unique, puis en le passant à
String
constructeur:La quatrième façon est de faire usage de la concaténation:
Ce sera effectivement faire usage de
append
méthode deStringBuilder
classe qui est en fait préféré quand nous faisons de concaténation dans une boucle.Voici quelques méthodes, dans aucun ordre particulier:
Je suis la conversion Char Tableau de Chaîne de
J'ai essayé les suggestions, mais a terminé la mise en œuvre comme suit