8
votes

Pourquoi devrais-je utiliser INTEGER.TOSTRING () au lieu de simplement imprimer l'entier?

Je suivais un didacticiel Java et je me faisais faire quelque chose comme: XXX

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: xxx

est une bonne raison d'utiliser la méthode tostring () méthode pour non -String types de données? Et dans mon exemple spécifique, existe-t-il des valeurs int qui ne peuvent pas être auto tostring?


2 commentaires

Il n'y a pas de différence significative entre les deux. Le tutoriel a peut-être voulu souligner que Tostring 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 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 + . Si vous n'êtes pas prudent, la concaténation de chaîne avec l'opérateur + peut produire des résultats inattendus.


5 Réponses :


5
votes

Y a-t-il une bonne raison d'utiliser la méthode Tostring () pour les types de données non-chaînes?

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.

Remarque: Dans Java 7 Update 9, il ne crée pas la chaîne d'abord comme ANNED (INT) ressemble à ce < Pré> xxx

Il convertit le détroit de numéro dans le StringBuilder évitant de créer une chaîne d'abord.

et dans mon exemple spécifique, y a-t-il des valeurs INT qui ne peuvent pas être auto-tostring?

Non. Toutes les valeurs primitives peuvent être ...

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)


1 commentaires

Mais notez que ces valeurs de signal / NaN ne sont utilisées que par des primitives de point flottant telles que float / double , et non int .



0
votes
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.

0 commentaires

-6
votes

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.


2 commentaires

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



0
votes

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());


0 commentaires

21
votes

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: xxx

sortie: numéro = 5

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: xxx

sortie: 66Number

oops ! La valeur INT de = a été ajoutée à k au lieu d'être concaténée. Une solution consiste à rendre le = dans une chaîne . Une autre solution consiste à convertir explicitement le int à une chaîne : xxx

sortie: 5 = nombre < / Code>

"Oh, mais je ne ferais jamais ça, de toute façon," tu dis. "Toute personne dans leur droite aurait juste rendu le = 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 () 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 ci-dessous. xxx

sortie: < Pré> xxx


0 commentaires