2012-01-07 63 views

回答

28

to_i方法返回由字符串的起始處的所有可解析數字組成的數字。你的第一個字符串以數字開始,所以to_i返回那個,第二個字符串不以數字開頭,所以返回0。 BTW,空白將被忽略,所以" 123abc".to_i返回123

+1

這樣就意味着如果在開頭有非整數字符字符串to_i會忽略字符串的其餘部分? – hsinxh 2012-01-07 10:11:08

+1

準確地說,如果字符串以非整數字符開始,它會立即停止解析並返回0,忽略可能在字符串後面出現的任何數字。 – DarkDust 2012-01-07 12:44:12

+2

這不完全正確 - 它將通過空白字符進行解析。 「123」.to_i將評估爲123,就像一個以製表符開頭的字符串一樣。 – 2012-01-07 16:54:19

7

從文檔String#to_i

返回解釋str中的前導字符作爲整數

+0

用於RDoc鏈接。 – 2012-01-08 22:29:44

4

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 
相關問題