[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Show elements of array separated

Kless

8/30/2008 8:10:00 AM

Why when is showed an array into a variable , it is showed with all
characters followed?

---------------
foo = ['a', 'b', 'c']
puts "the content is: #{foo}" # => the content is: abc
---------------

I'm supposed that is because at the first it converts the array into a
string. But is there any way of show the elements of array separated?
3 Answers

Robert Klemme

8/30/2008 11:33:00 AM

0

On 30.08.2008 10:09, Kless wrote:
> Why when is showed an array into a variable , it is showed with all
> characters followed?
>
> ---------------
> foo = ['a', 'b', 'c']
> puts "the content is: #{foo}" # => the content is: abc
> ---------------
>
> I'm supposed that is because at the first it converts the array into a
> string. But is there any way of show the elements of array separated?

irb(main):001:0> foo = %w{a b c}
=> ["a", "b", "c"]
irb(main):002:0> foo.to_s
=> "abc"
irb(main):003:0> foo.join ", "
=> "a, b, c"
irb(main):004:0>

Kind regards

robert

Kless

8/30/2008 11:46:00 AM

0

Thanks! I was too complicated:

irb(main):001:0> foo = ['a', 'b', 'c']
=> ["a", "b", "c"]
irb(main):002:0> s = ''
=> ""
irb(main):003:0> foo.each {|x| s += x.to_s + ', '}
=> ["a", "b", "c"]
irb(main):004:0> puts s[0..-3]
a, b, c
=> nil


On Aug 30, 12:33 pm, Robert Klemme <shortcut...@googlemail.com> wrote:
> On 30.08.2008 10:09, Kless wrote:
>
> > Why when is showed an array  into a variable , it is showed with all
> > characters followed?
>
> > ---------------
> > foo = ['a', 'b', 'c']
> > puts "the content is: #{foo}" # =>  the content is: abc
> > ---------------
>
> > I'm supposed that is because at the first it converts the array into a
> > string. But is there any way of show the elements of array separated?
>
> irb(main):001:0> foo = %w{a b c}
> => ["a", "b", "c"]
> irb(main):002:0> foo.to_s
> => "abc"
> irb(main):003:0> foo.join ", "
> => "a, b, c"
> irb(main):004:0>
>
> Kind regards
>
>         robert

Robert Klemme

8/30/2008 12:09:00 PM

0

On 30.08.2008 13:45, Kless wrote:
> Thanks! I was too complicated:
>
> irb(main):001:0> foo = ['a', 'b', 'c']
> => ["a", "b", "c"]
> irb(main):002:0> s = ''
> => ""
> irb(main):003:0> foo.each {|x| s += x.to_s + ', '}
> => ["a", "b", "c"]
> irb(main):004:0> puts s[0..-3]
> a, b, c
> => nil

If you want to do it manually, I'd rather do something like this:

irb(main):004:0> s = ""
=> ""
irb(main):005:0> foo.each_with_index {|x,i| s << ", " unless i == 0; s
<< i.to_s}
=> ["a", "b", "c"]
irb(main):006:0> s
=> "0, 1, 2"
irb(main):007:0>

Or even

irb(main):010:0> foo.inject {|a,b| "#{a}, #{b}"}
=> "a, b, c"
irb(main):011:0> ["a"].inject {|a,b| "#{a}, #{b}"}
=> "a"
irb(main):012:0> [].inject {|a,b| "#{a}, #{b}"}
=> nil
irb(main):013:0>

But note the empty Array case.

Kind regards

robert