Home > OS >  Iterate through alphabet in Ruby until X
Iterate through alphabet in Ruby until X

Time:02-05

When using input x, I'm trying to iterate through the alphabet through to that point so, if I put in 44, I'll iterate to 18 from this method.

I can see a lot of methods on SO for iteration a..z, a..zzz, etc, but less for iteration to position x and outputting the associated letters. Is there a ruby method for flipping an input letter to a number within a dynamic range?

def get_num(x)
  pos = x&
   (1..pos).each do |c|
     puts c
     #outputs letter for position c
  # end      
end

get_num(44) # => Expected: 44& = 18; iterate 1 to 18 (pos) to get A..R list as output.

CodePudding user response:

Using the #Integer.chr method, 'a'..'z' == 97..122 and 'A'..'Z' == 65..90 That means:

def get_num(x)
  pos = x&
  (96 pos).chr
end

get_num(44)
#=>  "r"

OR

def get_num(x)
  pos = x&
  (64 pos).chr
end

get_num(44)
#=>  "R"

So, to complete your method:

def get_num(x)
  pos = x&
   (1..pos).each do |c|
    puts (c 64).chr 
  end      
end

get_num(44)
#=>
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
  •  Tags:  
  • Related