2011-03-03 110 views
15

如何获取Ruby 1.9中字符的ASCII值?Ruby中字符的ASCII值

我在网上搜索了很多,但没有成功。 我尝试过?x和“x”[0],但它们返回的是“x”。

+0

可能的重复[在ruby中获取ascii字符代码 - ?失败](http://stackoverflow.com/questions/1270209/getting-an-ascii-character-code-in-ruby-fails) – 2011-03-03 12:06:04

+4

“我在互联网上搜索了很多,但没有成功。”嗯。 [搜索引擎](http://www.google.com/search?q=ruby+1.9+character+ordinal+value)的日子一定很糟糕。 – 2011-03-03 15:47:40

+3

@锡文:也许OP不知道“序数”这个词。 – 2011-03-03 22:30:55

回答

35

String#ord方法将这样的伎俩:

ruby-1.9.2-p136 > 'x'.ord 
=> 120 
ruby-1.9.2-p136 > '0'.ord 
=> 48 
ruby-1.9.2-p136 > ' '.ord 
=> 32 
+0

'p'[0] .ord => 112 – 2013-10-02 02:35:00

14

您还可以使用

ruby-2.0.0p353 > "x".sum 
=> 120 

ruby-2.0.0p353 > "a string".sum 
=> 792 

的“和”法会发现所有的字符代码的总和,但如果你把只有一个字符,它会给你只有一个代码。

+3

+1为教育价值。 – mydoghasworms 2014-01-10 08:38:10

+1

也似乎.ord需要正确的UTF-8,但是.sum并不在乎。 – 2015-05-03 18:41:10

+0

0.ord将工作,返回0,ascii值。但是,0.sum不会,它会返回Fixnum的未定义方法。 – jasonleonhard 2015-10-26 19:27:07