You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ruby哈希中搜索字符串类型的指定键?

解决Ruby哈希中字符串键的查找问题

嘿,这问题其实很好搞定!你的哈希键是字符串类型,而gets.chomp获取到的输入本身也是字符串,直接用Ruby哈希的标准查找方法就完全可行,可能你之前的尝试哪里有小疏漏?

我给你两种常用的实现方式,还包含了找不到键时的处理逻辑:

方法1:直接用方括号访问键

这是最直观的方式,哈希的方括号[]可以直接接收字符串作为键,返回对应的值;如果键不存在,会返回nil,我们可以用条件判断来处理这种情况:

titles = {'book1' => 396, 'book2' => 346}
print 'What title would you like to search for? '
item = gets.chomp

# 查找输入的标题
page_count = titles[item]

# 根据结果输出不同内容
if page_count
  puts "找到了!#{item}的页数是#{page_count}"
else
  puts "抱歉,哈希里没有#{item}这个标题哦"
end

方法2:使用fetch方法(推荐处理不存在的键)

fetch方法比方括号更灵活,你可以指定当键不存在时返回的默认值,避免直接得到nil:

titles = {'book1' => 396, 'book2' => 346}
print 'What title would you like to search for? '
item = gets.chomp

# 用fetch查找,第二个参数是键不存在时的默认返回值
page_count = titles.fetch(item, "未找到该标题")
puts "#{item}的信息:#{page_count}"

额外提醒:注意大小写和空格问题

如果你的哈希键是全小写(比如'book1'),但用户输入了'Book1'或者'book1 '(带空格),就会匹配失败。这种情况可以统一处理输入的格式:

# 把输入转成小写,同时去掉首尾空格
item = gets.chomp.downcase.strip

这样就能避免因为格式不一致导致的查找失败啦!

内容的提问来源于stack exchange,提问作者Saahil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:29:50