Je suivais un didacticiel Java et je me faisais faire quelque chose comme: Donc, comme un bon sport que j'ai suivi, mais je ne peux pas m'empêcher de m'empêcher, pourquoi utiliser ça méthode du tout? On dirait que beaucoup de dactylographie supplémentaires pour obtenir la même fonctionnalité que: p> est une bonne raison d'utiliser la méthode tostring () code> méthode pour non -String types de données? Et dans mon exemple spécifique, existe-t-il des valeurs
int code> qui ne peuvent pas être auto tostring? P> p>
5 Réponses :
Y a-t-il une bonne raison d'utiliser la méthode Tostring () pour les types de données non-chaînes? p>
Certaines personnes croient qu'il est plus clair. ESP pour les débutants qui n'ont peut-être pas réalisé qu'ils font fondamentalement la même chose. p>
Remarque: Dans Java 7 Update 9, il ne crée pas la chaîne d'abord comme ANNED (INT) ressemble à ce p> < Pré> xxx pré>
Il convertit le détroit de numéro dans le StringBuilder évitant de créer une chaîne d'abord. P>
et dans mon exemple spécifique, y a-t-il des valeurs INT qui ne peuvent pas être auto-tostring? P> BlockQuote>
Non. Toutes les valeurs primitives peuvent être ... P>
La seule exception que je connaisse est signalisation et Calme pas-a-numéro comme Java ne se soucie pas de telles choses. Les deux apparaissent comme "nan" et il n'ya aucun moyen de dire la différence par rapport à la totring () (ou la plupart des fonctions de Java) p> blockquote>
Mais notez que ces valeurs de signal / NaN ne sont utilisées que par des primitives de point flottant telles que float code> /
double code>, et non
int code>.
System.out.println("The number is " + Integer.toString(k)); In the above print "The number is " is string, so String+(anything) is String only.So in that case no need to call toString() at all.So if you want to print k value only then also no need to call toString() as S.O.P internaqlly calls toString().So finally , we can say unless specifically you want to convert Integer to String you should not call toString() method.
Il permet au numéro de devenir un type de données de chaîne afin qu'il s'agisse d'une chaîne. Comme Mob a dit cependant, ce n'est même pas un entier de commencer. Vous devriez l'analyser à un entier avant de devenir un. P>
Il n'a pas besoin d'être un entier, car Integer.Tostring (int) ne s'attend pas à un entier.
PrintLN effectue cette conversion automatiquement, nous n'avons pas à le faire
Utilisez la deuxième version. Pour les expressions de concessions de chaîne telles que
System.out.println((new StringBuilder("The number is ")).append(Integer.toString(k)).toString());
C'est l'une des nombreuses pratiques "de programmation sûres" que vous pouvez adopter pour améliorer la clarté et empêcher les erreurs subtiles que vous pouvez introduire ou un futur mainteneur de votre code. Prenez l'exemple suivant: sortie: Supposons maintenant que vous souhaitez imprimer le numéro en premier et le texte en dernier. Tout ce que je fais, c'est échanger les premiers et derniers éléments de la concaténation de la chaîne: p> sortie: oops ! La valeur INT de sortie: "Oh, mais je ne ferais jamais ça, de toute façon," tu dis. "Toute personne dans leur droite aurait juste rendu le sortie: p> < Pré> xxx pré> p> numéro = 5 code> p>
66Number code> p>
= code> a été ajoutée à
k code> au lieu d'être concaténée. Une solution consiste à rendre le
= code> dans une chaîne
code>. Une autre solution consiste à convertir explicitement le
int code> à une chaîne
code>: p>
5 = nombre < / Code> P>
= code> partie de l'autre chaîne." Mais que se passe-t-il si vous implémentez une partie d'une application de calculatrice de base et que vous souhaitez générer l'expression et son résultat? Si vous essayez vraiment de faire attention, je suppose que vous utiliserez
stringbuilder.append () code> pour concaténer les parties de l'expression. Mais sinon, j'espère que vous n'écrivez pas la première mise en œuvre de la méthode code> code> ci-dessous. P>
Il n'y a pas de différence significative entre les deux. Le tutoriel a peut-être voulu souligner que
Tostring code> est appelé "sous les couvertures", mais pour la programmation quotidienne, il s'agit d'un fouillis supplémentaire.
J'ai déjà posté une réponse plus tôt, mais je voulais souligner les lecteurs occasionnels qu'il y a des cas pratiques dans lesquels vous devez utiliser i> utiliser entier.tostring (int) et / ou d'autres garanties lors de la concaténation des éléments dans une chaîne plus longue. avec l'opérateur
+ code>. Si vous n'êtes pas prudent, la concaténation de chaîne avec l'opérateur
+ code> peut produire des résultats inattendus.