数组返回Fixnum而不是String

时间:2013-04-09 19:31:42

标签: ruby arrays

我有一个类似于:

的数组

[["Rosalind_0498", "AAATAAA"], ["Rosalind_2391", "AAATTTT"]]

我想获得第一个数组第二个元素的字母,我期望使用array[0][1][-1]

这不是返回'A'返回65,它可能与ruby数组有关,但我不确定它为什么会发生,有人能指出我正确的方向吗?

更新:

有没有更好的方法呢array[0][1][-1..-1]

3 个答案:

答案 0 :(得分:3)

在Ruby 1.9之前,访问带有[]的字符串char会获得此char的ascii值。

在ruby 1.8中使用它:

array[0][1][-1].chr

答案 1 :(得分:0)

你使用的是什么版本的红宝石?

2.0.0p0 :001 > a = [["Rosalind_0498", "AAATAAA"], ["Rosalind_2391", "AAATTTT"]]
 => [["Rosalind_0498", "AAATAAA"], ["Rosalind_2391", "AAATTTT"]]
2.0.0p0 :002 > a[0][1][0]
 => "A"

答案 2 :(得分:0)

您可以尝试以下方法:

p [["Rosalind_0498", "AAATAAA"], ["Rosalind_2391", "AAATTTT"]].flatten[1].chr #=> "A"