Je veux convertir la valeur d'entrée dans "Prompt invite: aStringPrompt" en une valeur entière, comment puis-je faire cela?string à integer dans smalltalk
Répondre
Deux étapes: (a) valider l'entrée, et (b) convertir.
Vous pouvez valider comme suit: myString isAllDigits
. La conversion est triviale: '1' asInteger
. Dans Squeak, au moins, cela renvoie l'entier 1. 'g1' asInteger
renvoie 1, tout comme 'g1' asInteger
. g asInteger
renvoie zéro.
Donc, en résumé:
"Given some input string s containing a decimal representation of a number, either return s in integer form, or raise an exception."
s := self getUserInput.
(s isAllDigits) ifFalse: [ Exception signal: '"', s, '" is not a (decimal) number' ].
^ s asInteger.
monsieur que diriez-vous de dauphin, je n'utilise pas grincer. pouvez-vous l'expliquer dans la syntaxe de dauphin? merci beaucoup – leroj
aString asInteger devrait fonctionner dans tous les Smalltalks. La meilleure façon est d'expérimenter un peu et de regarder la bibliothèque de classe de votre dialecte Smalltalk pour trouver toutes les possibilités. –
@Frank Shearar, merci pour le lien mais j'ai encore résolu mon problème. après que la boîte de dialogue d'entrée est apparue j'ai entré mon numéro mais il ne le change pas en asInteger ou en asNumber variable. mon problème est après que je déclare mon numéro aléatoire il ne le change pas ici est mon code s'il vous plaît commentez dessus si vous avez une idée sur comment le résoudre merci – leroj
Juste essayé cela dans Dolphin 6:
(Prompter prompt: 'Enter a number') asInteger
Exécuter ce (placez le curseur sur le dessus dans un espace de travail et appuyez sur Ctrl-D), entrez 123 dans l'invite qui s'affiche, et vous verrez 123 affiché comme la sortie. Si vous supprimez l'invocation #asInteger, il affichera '123', indiquant qu'une chaîne a été renvoyée. En ce qui concerne votre 'ne comprend pas #nombre', cela signifie que quelque part dans le code, vous exécutez le message #number comme étant envoyé à un objet qui ne savait pas comment le gérer.
Pour le plaisir que je pris votre code et légèrement reformatée il:
| dir |
[ dir isNil or: [ dir isEmpty ] ] whileTrue:
[ dir:= Prompter prompt: 'Enter your number' caption: 'Input the Number' ].
MessageBox notify: 'your inputed number is ', (dir) caption: 'Inputed'.
et trouvé qu'il a couru très bien. Ensuite, je l'ai remarqué ne pas convertir la chaîne retourné à un numéro, donc je l'ai changé:
| dir |
[ (dir isNil or: [ dir isEmpty ]) or: [ (dir select: [ :c | c isDigit not ]) size > 0 ] ] whileTrue:
[ dir:= Prompter prompt: 'Enter your number' caption: 'Input the Number' ].
MessageBox notify: 'your inputed number is ', (dir) caption: 'Inputed'.
Cela a également couru bien, avec l'avantage supplémentaire qu'il n'acceptera des caractères non numériques.
Partagez et appréciez.
- 1. php hash form string to integer
- 2. Mises à jour d'Asynch GUI dans Smalltalk
- 3. Y at-il une différence entre String et string dans C# comme int et Integer dans Java?
- 4. Liaison d'un Dictionary (Of Integer, String) à la propriété DataTextField d'un DropDownList
- 5. Blocs Smalltalk dans Objective-c?
- 6. XSD: Comment redéfinir le type de données d'un simpleType eg. De xs: string à xs: integer
- 7. Smalltalk collections
- 8. Chaîne à Integer avec JDBC/ODBC sql
- 9. Navigateur refactoring dans Smalltalk Pharo?
- 10. Renvoyer des messages dans Smalltalk
- 11. Smalltalk Fonctions variadiques
- 12. Chaîne à Integer ne fonctionne pas
- 13. Smalltalk, caractère de nouvelle ligne
- 14. Smalltalk et Assertions
- 15. Smalltalk caractéristiques exotiques
- 16. Smalltalk et IoC
- 17. API GNU Smalltalk?
- 18. Comment redessiner une liste dans smalltalk
- 19. Convertir mois Chaîne à Integer en Java
- 20. Tout Smalltalk sur .NET?
- 21. Fonction Unix crypt() dans smalltalk/pharo
- 22. Smalltalk: sortie d'écriture dans un fichier
- 23. Comment charger une image (image) dans smalltalk
- 24. Editeur pour un interpréteur dans Smalltalk
- 25. Utilisation de la classe LinkedList dans SmallTalk?
- 26. Communication inter-image dans Smalltalk. Possible?
- 27. define integer array fortran
- 28. Btrieve Date de Integer
- 29. Birt Global Integer
- 30. Que signifie [String] dans VB.NET?
Après avoir posté ma réponse, je remarque qu'il s'agit probablement d'un doublon de http://stackoverflow.com/questions/2226029 –
duplication possible de [String to Integer Smalltalk] (http://stackoverflow.com/questions/2226029/string-to-integer-smalltalk) – Mark