From: Martin Jansson Date: 2006-06-29T02:13:21+09:00 Subject: Re: string manipulation siva kumar wrote: > How to add "-" between the numbers > Eg: > 123456789123456789 as 12-3456-7891-2345-6789 irb(main):001:0> s = 123456789123456789.to_s => "123456789123456789" irb(main):002:0> "#{s[0,2]}-#{s[2,4]}-#{s[6,4]}-#{s[10,4]}-#{s[14,4]}" => "12-3456-7891-2345-6789" irb(main):003:0> "#{s[0..1]}-#{s[2..5]}-#{s[6..9]}-#{s[10..13]}-#{s[14..17]}" => "12-3456-7891-2345-6789" irb(main):004:0> def f(n, p=4, s="") irb(main):005:1> i= n.to_i irb(main):006:1> return s if i<=0 irb(main):007:1> a= 10**p irb(main):008:1> f(i/a, p, (i%a).to_s+(s=="" ? "" : "-"+s)) irb(main):009:1> end => nil irb(main):010:0> f s => "12-3456-7891-2345-6789" irb(main):011:0> f s.to_i => "12-3456-7891-2345-6789" irb(main):012:0> f s, 5 => "123-45678-91234-56789" -- Posted via http://www.ruby-forum.com/.