[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

String#starts_with?

Martin DeMello

7/8/2006 5:55:00 PM

Has anyone run tests to see what the fastest way to do a
String#starts_with?(otherstring) is? I'll need this in an inner loop,
so it's worth squeezing out the few drops of extra speed.

martin

3 Answers

Marcin Mielzynski

7/8/2006 7:10:00 PM

0

Martin DeMello wrote:
> Has anyone run tests to see what the fastest way to do a
> String#starts_with?(otherstring) is? I'll need this in an inner loop,
> so it's worth squeezing out the few drops of extra speed.


String#index should be the fastest

lopex

Robin Stocker

7/8/2006 7:24:00 PM

0

Marcin MielżyÅ?ski wrote:
> String#index should be the fastest

I'm afraid it isn't suitable for this case. String#index searches the
whole string when the string doesn't start with the start, which is very
bad.

Use String#[] or a regular expression:

text = "this is a test"
search = "this"
text[0, search.length] == search #=> true

text =~ /^this/ #=> 0 (true)
text =~ /^test/ #=> nil (false)

Cheers,
Robin Stocker

Robin Stocker

7/8/2006 7:29:00 PM

0

Martin DeMello wrote:
> thanks. any suggestions for #ends_with?

Yes, two examples:

"this is a test" =~ /test$/ #=> 10 (true)

text = "this is a test"
search = "test"
text[text.length - search.length, search.length] == search #=> true