Come verificare se una variabile è un numero o una stringa in Ruby?Come verificare se una variabile è un numero o una stringa?
risposta
Ci sono diversi modi:
>> 1.class #=> Fixnum
>> "foo".class #=> String
>> 1.is_a? NumeriC#=> true
>> "foo".is_a? String #=> true
var.is_a? String
var.is_a? Numeric
Questo non controlla se la * variabile * è un numero, controlla se l'oggetto che la variabile * punta su * è un numero. C'è una grossa differenza tra le due. –
@ Jörg: Penso che sia abbastanza ovvio ciò che l'OP sta chiedendo, in questo caso non c'è bisogno di pedanteria. –
Stampa sua classe, che vi mostrerà quale tipo di variabile è (ad esempio String o Number).
es .:
puts varName.class
Questo non controlla se la * variabile * è un numero, controlla se l'oggetto che la variabile * punta su * è un numero. C'è una grossa differenza tra le due. –
class Object
def is_number?
self.to_f.to_s == self.to_s || self.to_i.to_s == self.to_s
end
end
> 15.is_number?
=> true
> 15.0.is_number?
=> true
> '15'.is_number?
=> true
> '15.0'.is_number?
=> true
> 'String'.is_number?
=> false
Questo ha funzionato per me dove '.is_a? Numeric' no. Stavo controllando se un campo estratto da un file CSV fosse un numero, quindi il confronto con 'Numeric' fallisce perché in realtà è una stringa che è anche un numero. –
Questo fallisce in alcuni casi, come '15.10',' 015' o '15.33333333333333333'. –
La seguente definizione per is_number? satsifies preoccupazioni di Andrew: def is_number? (testo) !! (/^[- +]? [0-9] * \.? [0-9] + ([eE] [- +]? [0-9 ] +)? $/= ~ testo) fine –
Il finishing_moves
gem include un metodo String#numeric?
per realizzare questo compito molto. L'approccio è lo stesso della risposta di installero, solo impacchettato.
"1.2".numeric?
#=> true
"1.2e34".numeric?
#=> true
"1.2.3".numeric?
#=> false
"a".numeric?
#=> false
if chr.to_i != 0
puts "It is number, yep"
end
Cosa succede se 'chr' è' "0" '? –
Aggiungi le spiegazioni alla tua risposta. –
- 1. Come verificare se una variabile è un intero o una stringa?
- 2. Come verificare se una variabile è uguale a una stringa o un'altra stringa?
- 3. Come verificare una stringa se è un ASCII o no?
- 4. Come verificare se una stringa è bilanciata?
- 5. come sapere se una variabile è una tupla, una stringa o un intero?
- 6. Verificare se una variabile è una data con Twig
- 7. Verificare se la variabile è una stringa o una matrice in Twig
- 8. Come faccio a verificare se una variabile è stata inizializzata
- 9. Twig - Come verificare se la variabile è un numero/intero
- 10. Come verificare se una variabile è un oggetto Moment.js?
- 11. Come verificare se una variabile è un oggetto IEnumerable
- 12. Regex per verificare se una stringa termina con un numero
- 13. Verificare se una stringa inizia con un numero in PHP
- 14. Come posso verificare se un carattere è una lettera o un numero?
- 15. Objective-C: come verificare se una variabile è un oggetto, una struct o un'altra primitiva
- 16. Come verificare se una variabile di ambiente non è impostata o impostata sulla stringa vuota?
- 17. Come verificare se una stringa è nullo in python
- 18. Come determinare se una stringa è un numero in C#
- 19. Ruby: come verificare se una stringa è valida?
- 20. Esiste una funzione per verificare se una variabile stringa è un valore numerico?
- 21. Come posso verificare se una stringa è un float?
- 22. Come verificare se un tipo è una stringa in C#?
- 23. Come verificare se una stringa è un URL HTTP valido?
- 24. Verificare se una stringa contiene una particolare stringa in Velocity
- 25. Come posso sapere se una variabile python è una stringa o un elenco?
- 26. Come usare correttamente isinstance() di python per verificare se una variabile è un numero?
- 27. Qual è un modo migliore per verificare se una stringa è un numero intero su iPhone?
- 28. Come verificare se una variabile enum è valida?
- 29. Come verificare se una variabile è primitiva in PHP
- 30. Come verificare se una stringa è un numero decimale in Scala
Questo non controlla se la variabile * * è un numero, esso verifica se l'oggetto punti * a * variabile è un numero. C'è una grossa differenza tra le due. –
Dato che le domande su SO (e altrove) sono richieste in modo colloquiale, è giusto presumere che sia ciò che intendeva OP, specialmente da quando l'ha accettata. –