trying to create an array with AA-ZZ for dutch postal codes

B

bookie988

the array postcodes should be filled with strings starting looking
like

["AA",AB",AC"..."BA","BB","BC" to "ZZ"] 26*26 entries.

i've come up with the following to create it,

postcodes = Array.new

# create postal codes array

W = String.new()
X = String.new()

(A..Z).each do |W| {

puts W
(A..Z).each do |X| {
postcodes.push("#{W}#{X}")

}
}

puts(postcodes)

this code produces

hpricot-test.rb:20: syntax error, unexpected tCONSTANT, expecting kDO
or '{' or '('
hpricot-test.rb:22: odd number list for Hash
hpricot-test.rb:25: syntax error, unexpected '}', expecting kEND
hpricot-test.rb:57: syntax error, unexpected $end, expecting kEND

what am i doing wrong, is there an easier (rubier) way?
 
J

-j b-

unknown said:
the array postcodes should be filled with strings starting looking
like

["AA",AB",AC"..."BA","BB","BC" to "ZZ"] 26*26 entries.
...

what am i doing wrong, is there an easier (rubier) way?

("AA".."ZZ").to_a
 
H

Harry Kakueki

the array postcodes should be filled with strings starting looking
like

["AA",AB",AC"..."BA","BB","BC" to "ZZ"] 26*26 entries.

i've come up with the following to create it,

postcodes = Array.new

# create postal codes array

W = String.new()
X = String.new()

(A..Z).each do |W| {

puts W
(A..Z).each do |X| {
postcodes.push("#{W}#{X}")

}
}

puts(postcodes)

this code produces

hpricot-test.rb:20: syntax error, unexpected tCONSTANT, expecting kDO
or '{' or '('
hpricot-test.rb:22: odd number list for Hash
hpricot-test.rb:25: syntax error, unexpected '}', expecting kEND
hpricot-test.rb:57: syntax error, unexpected $end, expecting kEND

what am i doing wrong, is there an easier (rubier) way?

("AA".."ZZ").each {|x| p x}

Harry
 
P

Peter Hickman

the array postcodes should be filled with strings starting looking
like

["AA",AB",AC"..."BA","BB","BC" to "ZZ"] 26*26 entries.

i've come up with the following to create it,

postcodes = Array.new

# create postal codes array

W = String.new()
X = String.new()

(A..Z).each do |W| {

puts W
(A..Z).each do |X| {
postcodes.push("#{W}#{X}")

}
}

puts(postcodes)

this code produces

hpricot-test.rb:20: syntax error, unexpected tCONSTANT, expecting kDO
or '{' or '('
hpricot-test.rb:22: odd number list for Hash
hpricot-test.rb:25: syntax error, unexpected '}', expecting kEND
hpricot-test.rb:57: syntax error, unexpected $end, expecting kEND

what am i doing wrong, is there an easier (rubier) way?
Sorry but there are many errors here: First some code that works:

postcodes = Array.new

('A'..'Z').each do |x|
('A'..'Z').each do |y|
postcodes << "#{x}#{y}"
end
end

puts(postcodes)

Note that the A..Z is now 'A'..'Z'. This is because A is a reference to
a constant called A which you haven't defined but 'A' is a upper case
letter.

When doing a xxx.each you can do it either way:

('A'..'Z').each do |x|
puts x
end

or

('A'..'Z').each {|x|
puts x
}

You seem to be mixing both.

Your use of W and X as variables. Firstly upper case letters are
constants so you can not use them as looping variables. Infact you do
not need to predeclare the variables at all.
 
A

aleister

the array postcodes should be filled with strings starting looking
like
["AA",AB",AC"..."BA","BB","BC" to "ZZ"] 26*26 entries.
i've come up with the following to create it,
postcodes = Array.new
# create postal codes array
W = String.new()
X = String.new()
(A..Z).each do |W| {
puts W
(A..Z).each do |X| {
postcodes.push("#{W}#{X}")


this code produces
hpricot-test.rb:20: syntax error, unexpected tCONSTANT, expecting kDO
or '{' or '('
hpricot-test.rb:22: odd number list for Hash
hpricot-test.rb:25: syntax error, unexpected '}', expecting kEND
hpricot-test.rb:57: syntax error, unexpected $end, expecting kEND
what am i doing wrong, is there an easier (rubier) way?

Sorry but there are many errors here: First some code that works:

postcodes = Array.new

('A'..'Z').each do |x|
('A'..'Z').each do |y|
postcodes << "#{x}#{y}"
end
end

puts(postcodes)

Note that the A..Z is now 'A'..'Z'. This is because A is a reference to
a constant called A which you haven't defined but 'A' is a upper case
letter.

When doing a xxx.each you can do it either way:

('A'..'Z').each do |x|
puts x
end

or

('A'..'Z').each {|x|
puts x

}

You seem to be mixing both.

Your use of W and X as variables. Firstly upper case letters are
constants so you can not use them as looping variables. Infact you do
not need to predeclare the variables at all.

thanx
 
S

Sandro Paganotti

I'm having fun with arrays; here's my version:

((a = ('A'..'Z').to_a) * (b=a.length)).zip(a.collect{|e|
[e]*b}.flatten).collect{|e| e.join}.join("\n")

the array postcodes should be filled with strings starting looking
like
["AA",AB",AC"..."BA","BB","BC" to "ZZ"] 26*26 entries.
i've come up with the following to create it,
postcodes = Array.new
# create postal codes array
W = String.new()
X = String.new()
(A..Z).each do |W| {
puts W
(A..Z).each do |X| {
postcodes.push("#{W}#{X}")


this code produces
hpricot-test.rb:20: syntax error, unexpected tCONSTANT, expecting kDO
or '{' or '('
hpricot-test.rb:22: odd number list for Hash
hpricot-test.rb:25: syntax error, unexpected '}', expecting kEND
hpricot-test.rb:57: syntax error, unexpected $end, expecting kEND
what am i doing wrong, is there an easier (rubier) way?

Sorry but there are many errors here: First some code that works:

postcodes = Array.new

('A'..'Z').each do |x|
('A'..'Z').each do |y|
postcodes << "#{x}#{y}"
end
end

puts(postcodes)

Note that the A..Z is now 'A'..'Z'. This is because A is a reference to
a constant called A which you haven't defined but 'A' is a upper case
letter.

When doing a xxx.each you can do it either way:

('A'..'Z').each do |x|
puts x
end

or

('A'..'Z').each {|x|
puts x

}

You seem to be mixing both.

Your use of W and X as variables. Firstly upper case letters are
constants so you can not use them as looping variables. Infact you do
not need to predeclare the variables at all.

thanx
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,013
Latest member
KatriceSwa

Latest Threads

Top