Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > using step backward ?

Reply
Thread Tools

using step backward ?

 
 
Josselin
Guest
Posts: n/a
 
      02-24-2007
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

 
Reply With Quote
 
 
 
 
Olivier Renaud
Guest
Posts: n/a
 
      02-24-2007
Le samedi 24 f=E9vrier 2007 19:00, Josselin a =E9crit=A0:
> I have an array myArray =3D ["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"] =3D> ">22<"
> case 2 items : ["22", "31"] =3D> "22#>31<"
> ..
> case n items : ["22", "31", "56", .........., "89", "47"] =3D>
> "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=
,=20
make a special treatment for the last element.

=2D-=20
Olivier Renaud

 
Reply With Quote
 
 
 
 
Rob Biedenharn
Guest
Posts: n/a
 
      02-24-2007


 
Reply With Quote
 
Phrogz
Guest
Posts: n/a
 
      02-24-2007
On Feb 24, 10:59 am, Josselin <(E-Mail Removed)> 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<"


 
Reply With Quote
 
Josselin
Guest
Posts: n/a
 
      02-24-2007
On 2007-02-24 19:51:16 +0100, "Phrogz" <(E-Mail Removed)> said:

> On Feb 24, 10:59 am, Josselin <(E-Mail Removed)> 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<"


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..


 
Reply With Quote
 
Raj Sahae
Guest
Posts: n/a
 
      02-24-2007
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('#')}


 
Reply With Quote
 
Gary Wright
Guest
Posts: n/a
 
      02-24-2007

On Feb 24, 2007, at 1:00 PM, 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<
>
> 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




 
Reply With Quote
 
Josselin
Guest
Posts: n/a
 
      02-24-2007
On 2007-02-24 21:50:18 +0100, Gary Wright <(E-Mail Removed)> said:

>
> On Feb 24, 2007, at 1:00 PM, 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<
>>
>> 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...
>
>
>
> Gary Wright



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
New Download Manager - a backward step? Mike Windows 64bit 3 02-21-2011 07:22 PM
A Step Backward??? ritpg DVD Video 1 12-07-2007 02:47 AM
A Step Backward ? Digital Photography 163 08-30-2006 10:47 PM
Issues using the Mobile/Embedded Sample for Step by Step: Build a Lakota2k ASP .Net Mobile 0 04-14-2005 08:31 PM
Backward North America still...backward! Richard DVD Video 17 08-19-2004 04:55 AM



Advertisments