On Sun, 7 Jan 2007, Claus Guttesen wrote:

> Hi.
>
> I need to get the last three characters in a string. I couldn't find a
> function in the String class so I came up with this:
>
> class Remainder
>
> attr_writer :n
>
> def initialize(t = "", n = 0)
>  @t = t.to_s
>  @n = n.to_i
> end
>
> def get
>  get_remaining_letters
> end
>
> private
> def get_remaining_letters
>  s = @t.size
>  if s < @n
>    r = 0
>  else
>    r = s - @n
>  end
>
>  ft = @t.slice(r, @n)
> end
>
> end
>
>
> t = Remainder.new("Guttesen", 5)
> puts t.get
> tesen
> t.n = 4
> puts t.get
> esen
>
> Did I reinvent the wheel or does it make sense to add it to String?

You can index strings from the right with negative numbers:

   "abcdef"[-3..-1]   => "def"

I think that might be all you need.


David

-- 
Q. What is THE Ruby book for Rails developers?
A. RUBY FOR RAILS by David A. Black (http://www.manning.com/black)
    (See what readers are saying!  http://www.rubypal.com/r4rrevs.pdf)
Q. Where can I get Ruby/Rails on-site training, consulting, coaching?
A. Ruby Power and Light, LLC (http://www.rubypal.com)