Je viens de faire cela dans Eclipse: Cependant, Eclipse se plaint: P> La chaîne de constructeur (CHAR) est
indéfini p>
blockQquote> Comment convertir un caractère en une chaîne alors ?? p> merci p> J'ai essayé la méthode de sous-chaîne mais elle n'a pas fait 'T Travailler pour une raison quelconque mais que Gandalf travaille pour moi juste bien! Très simple! P> p>
edit h2>
6 Réponses :
Voyage le plus simple? ou bien sûr P> String.valueOf('c');
Travaillé et je comprends ça. :) Cela semble un peu étrange cependant, peut-être parce que c'est trop facile!
La concaténation 'C' à "" est moins souhaitable car elle utilise StressBuilder. String.Valueof est l'approche préférée.
@Steve - Peut-être, peut-être pas. Cela dépend de l'intelligence du compilateur. Le JLS permet à un compilateur Java de réécrire les expressions de concaténation à chaîne à la séquence de code équivalente la plus efficace.
@Stephen J'ai utilisé Javac et Javap (1.6.0_10) et 'C' + "" Code> Utilise à l'aide de StringBuilder. Ainsi, alors que les JLS peuvent autoriser la réécriture, le compilateur Sun ne le fait pas.
String x = String.valueOf('c');`
That's the most straight forward way.
String firstInput = removeSpaces(myIn.readLine()); String first = firstInput.substring(0,1); This has an advantage that no new storage is allocated.
-1 - Faux. Un nouveau stockage est B> attribué pour représenter l'objet String créé par la sous-chaîne. string.valueof (char) code> potentiellement i> n'acitez aucun nouvel espace ... si le caractère est inférieur à 127 et que vous avez déjà appelé ValueOf code> pour ce caractère.
@Stephen. VRAI. Au moins avec Sun SDK. Il utilise le constructeur de cordes privées de paquet qui découpe la magie sur le même tableau char [] code> que firstinput code> utilise. Veuillez vérifier le code source SDK pour cela.
@Alexandre. Le constructeur de chaînes privées renvoie un nouvel objet à chaîne. Un nouveau stockage est donc alloué. Sur un JVM 32 bits, il est au moins 4 mots + l'en-tête d'objet. Jeez ...
@Stephen. J'ai ajouté une réponse à votre réponse Stackoverflow.com/questions/1829421/... . Je ne sais pas ce que JDK vous utilisez, mais en ce qui concerne Sun 1.6, vous ne pouvez pas aller de char code> à chaîne code> sans allouer chaîne code> Durée. SUBSTRUMATION CODE> AU MOINS N'EST PAS ALLOCATION UN NOUVEAU Char [] CODE> Array pour le stockage interne. Jeez ...
@Stephen. Après avoir supprimé votre mauvaise réponse, faites une décence pour supprimer vos commentaires de diffusion.
au lieu de ... vous pouvez utiliser ... p> SUBSTRORS (COMMENCE, END) CODE> vous donne un segment d'une chaîne - dans ce cas, 1 caractère. p> p>
Pourquoi ne pas utiliser la sous-chaîne?
String first = firstInput.substring(0, 1);
Vous pouvez le faire:
String s = Character.toString('k');
Qui appelle juste caractère.valueof ('k') code>
Non, ce n'est pas du tout, il appelle String.Valueof (Char);
Par curiosité, qu'est-ce qui "n'a pas fonctionné"? Quel message d'erreur vous a-t-il donné?