2011-03-03 33 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