Using step backward?

I have an array myArray = ["22", "31", "56", "89", "47"]

I would like to produce a string like : "22#31#56#89>47<" where the last item must be : >last_item<

case 1 item : ["22"] => ">22<"
case 2 items : ["22", "31"] => "22#>31<"
..
case n items : ["22", "31", "56", .........., "89", "47"] => "22#31#56#...........#89>47<"

as it's always the last items getting special treatment I thought
starting with " >"+myArray.last +"< " then
using 1.step(myArray.length-1, -1) do {..... put # after item } and concatenate if myArray.length > 1
but I cannot get it right... I cannot get simple

tfyh

joss

You may want to use Array#slice and Array#join to do that. And, as you said,
make a special treatment for the last element.

···

Le samedi 24 février 2007 19:00, Josselin a écrit :

I have an array myArray = ["22", "31", "56", "89", "47"]

I would like to produce a string like : "22#31#56#89>47<" where the
last item must be : >last_item<

case 1 item : ["22"] => ">22<"
case 2 items : ["22", "31"] => "22#>31<"
..
case n items : ["22", "31", "56", .........., "89", "47"] =>
"22#31#56#...........#89>47<"

as it's always the last items getting special treatment I thought
starting with " >"+myArray.last +"< " then
using 1.step(myArray.length-1, -1) do {..... put # after item } and
concatenate if myArray.length > 1
but I cannot get it right... I cannot get simple

tfyh

joss

--
Olivier Renaud

irb(main):001:0> myArray = ["22", "31", "56", "89", "47"]
=> ["22", "31", "56", "89", "47"]
irb(main):002:0> last = myArray.pop
=> "47"
irb(main):003:0> myArray.join('#')+">#{last}<"
=> "22#31#56#89>47<"

···

On Feb 24, 10:59 am, Josselin <josse...@wanadoo.fr> wrote:

I have an array myArray = ["22", "31", "56", "89", "47"]

I would like to produce a string like : "22#31#56#89>47<" where the
last item must be : >last_item<

I have an array myArray = ["22", "31", "56", "89", "47"]

I would like to produce a string like : "22#31#56#89>47<" where the last item must be : >last_item<

case 1 item : ["22"] => ">22<"
case 2 items : ["22", "31"] => "22#>31<"
..
case n items : ["22", "31", "56", .........., "89", "47"] => "22#31#56#...........#89>47<"

I'm assuming you have a typo in that last case and want the
string to end with: "#89#>47<". It isn't clear how you would
want an empty list formatted but here is one possibility:

$ cat format.rb

def format(list)
   list[0..-2].push(">#{list.last}<").join('#')
end

puts format()
puts format(%w{22})
puts format(%w{22 31})
puts format(%w{22 31 56})

$ ruby format.rb
><
>22<
22#>31<
22#31#>56<

Gary Wright

···

On Feb 24, 2007, at 1:00 PM, Josselin wrote:

thanks it runs well for 1or n > 2 items but not for 2 items

myArray = ["22", "31"]
=> ["22", "31"]
irb(main):002:0> last = myArray.pop
=> "31"
irb(main):003:0> myArray.join('#')+">#{last}<"
=> "22>31<"

I should get "22#>31<", the # must come after each item excepted the last..

···

On 2007-02-24 19:51:16 +0100, "Phrogz" <gavin@refinery.com> said:

On Feb 24, 10:59 am, Josselin <josse...@wanadoo.fr> wrote:

I have an array myArray = ["22", "31", "56", "89", "47"]

I would like to produce a string like : "22#31#56#89>47<" where the
last item must be : >last_item<

irb(main):001:0> myArray = ["22", "31", "56", "89", "47"]
=> ["22", "31", "56", "89", "47"]
irb(main):002:0> last = myArray.pop
=> "47"
irb(main):003:0> myArray.join('#')+">#{last}<"
=> "22#31#56#89>47<"

I have an array myArray = ["22", "31", "56", "89", "47"]

I would like to produce a string like : "22#31#56#89>47<" where the last item must be : >last_item<

case 1 item : ["22"] => ">22<"
case 2 items : ["22", "31"] => "22#>31<"
..
case n items : ["22", "31", "56", .........., "89", "47"] => "22#31#56#...........#89>47<"

I'm assuming you have a typo in that last case and want the
string to end with: "#89#>47<".

YES .. sorry

It isn't clear how you would
want an empty list formatted but here is one possibility:

$ cat format.rb

def format(list)
   list[0..-2].push(">#{list.last}<").join('#')
end

puts format()
puts format(%w{22})
puts format(%w{22 31})
puts format(%w{22 31 56})

$ ruby format.rb
><
>22<
22#>31<
22#31#>56<

THAT's it......, very useful.. I put '#' and '>' '<' charcaters just to make it simple.. but the objective is to insert html tags
to format correctly an output string...

···

On 2007-02-24 21:50:18 +0100, Gary Wright <gwtmp01@mac.com> said:

On Feb 24, 2007, at 1:00 PM, Josselin wrote:

Gary Wright

Josselin wrote:

I have an array myArray = ["22", "31", "56", "89", "47"]

I would like to produce a string like : "22#31#56#89>47<" where the
last item must be : >last_item<

Here you say that you want the second to last item to have no # after it,

I should get "22#>31<", the # must come after each item excepted the last..

but here you say you want a # after it.
If you want no # sign, then Josselin's solution works.
If you want a # sign, just push that last item back on the array and join it with #

myArray = ["22", "31", "56", "89", "47"]
myArray2 = ["22", "47"]
myArray3 = ["47"]

arrays = [myArray, myArray2, myArray3]

arrays.each{|array| puts array.push('>' + array.pop.to_s + '<').join('#')}