ruby - 如何检索数组中字母的字符串值?

标签 ruby ascii

我正在尝试检索数组中字母的值。我的数组是:

a = ["a","b","c","d","e","f","g","h"].

如果我想检索一个字母的值,代码是:

?a

但是,当我尝试 ?a[5] 时,它给了我 0。有谁知道为什么会这样?

--抱歉澄清我使用的是 1.8.7 :)

最佳答案

实际上,从 Ruby 1.9 开始。 ?a 将为您提供字符串“a”,它曾经为您提供该字符的 ASCII 代码。此时它只是另一种(有限的)字符串文字机制。

如果你想要一个字符值,你需要使用 ord 方法,如 a[5].ord?a.ordord 记录在 http://ruby-doc.org/core-2.0.0/String.html#method-i-ord

? 运算符和字符串 [] 方法在传递单个 Fixnum 时的行为在 Ruby 1.9 中同时发生了变化,两者都返回一个字符用于返回 Fixnum 的字符串。

顺便说一句,我在同一官方引用文献的 Literals/String 部分找不到 ? 运算符的文档。

关于ruby - 如何检索数组中字母的字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19070763/

相关文章:

jquery - Rails,单击时更改 HTML 元素的类属性

java - 为什么 JRuby 在重载时不能使用我的参数是 RubyArray 的 Java 方法?

url - 如何将带有希腊字符的域名转换为ASCII URL?

c++ - 简单的C++类型转换程序

formatting - htop 输出到人类可读文件

ruby-on-rails - 如何对一个值的重复求和并将其添加到 Ruby 中一个键的两个值中?

ruby - 当我想部署我的网站时密码错误

ios - 将 MotionModel 记录分类为基于日期的部分以插入 ProMotion TableScreen 的最有效方法?

javascript - Node.js cookie 解析器返回编码字符

javascript - 我的JS在将ascii转换为字符串时添加一个空格