Estoy buscando para convertir el carácter 'a' en 97 en Ruby 1.9.2¿Valor entero de un personaje en rubí?
de Ruby 1.8.7
irb(main):001:0> ?a
=> 97
de Ruby 1.9.2
irb(main):001:0> ?a
=> "a"
Estoy buscando para convertir el carácter 'a' en 97 en Ruby 1.9.2¿Valor entero de un personaje en rubí?
de Ruby 1.8.7
irb(main):001:0> ?a
=> 97
de Ruby 1.9.2
irb(main):001:0> ?a
=> "a"
Probablemente desee String#ord
:
% irb
ruby-1.9.2-head > 'a'.ord
=> 97
No se pudo hacer que esto funcione en v1.8 –
?a
devolverá el ASCII valor del char a
Lamentablemente, no funcionará misma como pre-Ruby 1.9. Consulte http://eigenclass.org/hiki/Changes+in+Ruby+1.9#l16 – Zabba
'? A' devolverá lo más parecido a un tipo' char' que tiene Ruby, que en Ruby 1.9 es un 'Cadena de un solo caracter 'y en Ruby pre-1.9 es un' Fixnum'. 'String # ord' (y su dual' Integer # chr') es lo que quiere usar. –
Tenga en cuenta que si desea escribir código que es compatible con tanto de Ruby 1.8 y Ruby 1.9, es posible que desee utilizar String#each_byte
así:
$ irb
>> 'a'.each_byte.first
=> 97
Estoy atascado con 1.8 y esto funcionó muy bien. –
Para aquellos, que están buscando la al contrario de ord
. Tenemos chr
>> "A".ord
=> 65
>> 65.chr
=> "A"
Este enlace le ayudará con otros cambios en 1.9 también: '? C' http://eigenclass.org/hiki/Changes+in+Ruby+1.9#l16 – Zabba