大写字母

时间:2018-01-03 10:42:48

标签: ruby

我可以打印字母表:

alphabet = 'A'..'Z'

我可以将字符串转换为大写:

string.upcase

但是,我无法找出以大写字母打印字母表的正确语法。

下面的代码打印字母大写,但频率不起作用。当字母表是小写字母时,它可以正常工作。

s1 = @string
alphabet = 'A'..'Z'
mappedfreq = alphabet.collect do |s1|
  freq = @l1[s1]
  s1 + freq > 0 ? ": #{'* ' * freq}" : ''
end

有什么想法吗?

2 个答案:

答案 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

希望这就是你要找的东西。