each_char 里面用哈希hash发现无法返回预期的数值
代码如下:
def han2num(str)
myhash = {"一" => "1" , "二" => "2", "三" => "3" , "四" => "4", "五" => "5", "六" => "6", "七" => "7", "八" => "8", "九" => "9"}
#自定义一个散列数组,用中文的大写数字作为键。
str.each_char do |char|
p char
p myhash[char]
p myhash.key?(char)
end
end
p han2num(ARGV[0])
在程序中 p myhash.include?(char) 总是返回false,程序中输入“五千三百八十三” 比如第一次迭代,按照道理
char = “五” ,myhash[“五”] 应该等于 “5”,myhash.include?(char) 应该返回true啊,为什么是false?
奇怪的是,我单独写
hash2 = {"一" => "1" , "二" => "2", "三" => "3" , "四" => "4", "五" => "5", "六" => "6", "七" => "7", "八" => "8", "九" => "9"}
char = "五"
p hash2.key?(char)
这个最后hash2.key 又是true,
这个问题怎么解答?