java - Search for a word in a String -


if looking particular word inside string, example, in string "how you" looking "are". regular indexof() work faster , better or regex match()

string teststr = "how you"; string lookup = "are";  //method1 if (teststr.indexof(lookup) != -1) {  system.out.println("found!"); }  //or //method 2 if (teststr.match(".*"+lookup+".*")) {  system.out.println("found!"); } 

which of 2 methods above better way of looking string inside string? or there better alternative?

  • ivard

if don't care whether it's entire word you're matching, indexof() lot faster.

if, on other hand, need able differentiate between are, harebrained, aren't etc., need regex: \bare\b match are entire word (\\bare\\b in java).

\b word boundary anchor, , matches empty space between alphanumeric character (letter, digit, or underscore) , non-alphanumeric character.

caveat: means if search term isn't word (let's you're looking ###), these word boundary anchors match in string aaa###zzz, not in +++###+++.

further caveat: java has default limited worldview on constitutes alphanumeric character. ascii letters/digits (plus underscore) count here, word boundary anchors fail on words élève, relevé or ärgern. read more (and how solve problem) here.


Comments

Popular posts from this blog

ASP.NET/SQL find the element ID and update database -

jquery - appear modal windows bottom -

c++ - Compiling static TagLib 1.6.3 libraries for Windows -