From: Harry Kakueki Date: 2007-05-04T10:17:05+09:00 Subject: Re: Is there a better way to do this? On 5/4/07, Michael W. Ryder <_mwryder@worldnet.att.net> wrote: > As part of my learning Ruby I am trying to learn how to format strings. > The following is an example for formatting a U.S. phone number: > > a = "1234567890" > b = "(000) 000-0000" > ai = 0 > > for i in 0..(b.length) -1 > if b[i,1] == "0" > b[i,1] = a[ai,1] > ai += 1 > end > end > puts b > > Is there a better (more Rubyish) way to do this? > Obviously I will want to add more code in the future to handle > exceptions like phone numbers that are not 10 characters long or are > longer, but this will get me started. > > I'm sure there are better ways but here is something to look at. a = "1234567890" area = a.slice(0..2) exc = a.slice(3..5) num = a.slice(6..9) tel = "(#{area}) #{exc}-#{num}" p tel Harry -- http://www.kakueki.com/ruby/list.html A Look into Japanese Ruby List in English