2012-01-07 6 views

risposta

28

Il metodo to_i restituisce il numero che è formato da tutte le cifre digitabili all'inizio di di una stringa. La prima stringa inizia con una cifra con cifra, quindi to_i restituisce che la seconda stringa non inizia con una cifra, quindi 0 viene restituito. BTW, spazio bianco viene ignorato, in modo " 123abc".to_i rendimenti 123.

+1

Quindi significa che se non v'è il carattere non intero all'inizio del la stringa, to_i ignorerà il resto della stringa? – hsinxh

+1

Esatto, se la stringa inizia con un carattere non intero, interrompe immediatamente l'analisi e restituisce 0, ignorando eventuali numeri che potrebbero venire in seguito nella stringa. – DarkDust

+2

Questo non è completamente vero: analizzerà i caratteri dello spazio bianco. "123" .to_i valuterà a 123, come farebbe una stringa che inizia con una tabulazione. –

7

Dalla documentazione per String#to_i:

restituisce il risultato di interpretare personaggi principali in str come un intero

+0

+1 per il collegamento RDoc. –

4

Esempi più esaustivi di to_i :

irb(main):013:0* "a".to_i 
=> 0 
irb(main):014:0> "".to_i 
=> 0 
irb(main):015:0> nil.to_i 
=> 0 
irb(main):016:0> "2014".to_i 
=> 2014 
irb(main):017:0> "abc2014".to_i 
=> 0 
irb(main):018:0> "2014abc".to_i 
=> 2014 
irb(main):019:0> " 2014abc".to_i 
=> 2014 
Problemi correlati