我可以打印字母表:
alphabet = 'A'..'Z'
我可以将字符串转换为大写:
string.upcase
但是,我无法找出以大写字母打印字母表的正确语法。
下面的代码打印字母大写,但频率不起作用。当字母表是小写字母时,它可以正常工作。
s1 = @string
alphabet = 'A'..'Z'
mappedfreq = alphabet.collect do |s1|
freq = @l1[s1]
s1 + freq > 0 ? ": #{'* ' * freq}" : ''
end
有什么想法吗?
答案 0 :(得分:1)
您可以迭代它(它是Range
)并将其映射为大写,如下所示:
mappedfreq = alphabet.map(&:upcase).map do |s1|
frq = @lt[s1]
s1 + (frq> 0 ? ": #{'x ' x frq}" : '')
end
我也认为你没有理由不能首先用全部大写字母存储你的字母表,所以你不必将它大写:
alphabet = ('A'..'Z')
答案 1 :(得分:0)
您创建字母范围的方式不正确。
你应该这样做:
('a'..'z')
在此之后,马立克的解决方案将起到作用。
mappedfreq = alphabet.map(&:upcase).map do |s1|
frq = @lt[s1]
s1 + (frq> 0 ? ": #{'x ' x frq}" : '')
end
希望这就是你要找的东西。