Ruby数组如何查找所有包含指定字符的元素索引
问题原因
你的代码使用==做全等匹配,逻辑是仅筛选出**完全等于目标字符a**的元素,所以只有值为单个字符a的元素会被命中,自然漏掉了包含a的字符串bac。
修正方案
判断字符串是否包含指定字符,使用Ruby字符串内置的include?方法即可,符合你需求的正确写法如下:
list.each_index.select { |i| list[i].include?('a') }
运行后返回结果为[1, 2, 3, 8],和你的预期一致。
如果后续需要同时匹配大小写的a,可以补充大小写转换逻辑:
# 该写法会同时命中大写的'A',返回结果为[1, 2, 3, 6, 8] list.each_index.select { |i| list[i].downcase.include?('a') }
内容的提问来源于stack exchange,提问作者Edd
相关产品推荐
相关产品推荐

