2012-01-07 19 views

Respuesta

28

El método to_i devuelve el número que está formado por todos los dígitos analizables al comienzo de una cadena. La primera cadena comienza con un dígito para que to_i lo devuelva, la segunda cadena no comienza con un dígito, así que se devuelve 0. Por cierto, los espacios en blanco se ignora, por lo " 123abc".to_i vuelve 123.

+1

Eso significa que si hay caracteres no enteros al principio de la cadena, to_i ignorará el resto de la cadena? – hsinxh

+1

Exactamente, si la cadena comienza con un carácter no entero, inmediatamente detiene el análisis y devuelve 0, haciendo caso omiso de los números que puedan aparecer más adelante en la cadena. – DarkDust

+2

Eso no es completamente cierto: analizará los caracteres en espacios en blanco. "123" .to_i evaluará a 123, al igual que una cadena que comience con una pestaña. –

7

De la documentación para String#to_i:

devuelve el resultado de la interpretación de los personajes principales en str como un entero

+0

+1 para el enlace RDoc. –

4

ejemplos más exhaustivo de 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 
Cuestiones relacionadas