Posts

Showing posts with the label Substring

Better Way To Detect If A String Contains Multiple Words

Answer : I'd create a regular expression from the words: Pattern pattern = Pattern.compile("(?=.*adsf)(?=.*qwer)"); if (pattern.matcher(input).find()) { execute(); } For more details, see this answer: https://stackoverflow.com/a/470602/660143 Editors note: Despite being heavily upvoted and accepted, this does not function the same as the code in the question. execute is called on the first match, like a logical OR. You could use an array: String[] matches = new String[] {"adsf", "qwer"}; bool found = false; for (String s : matches) { if (input.contains(s)) { execute(); break; } } This is efficient as the one posted by you but more maintainable. Looking for a more efficient solution sounds like a micro optimization that should be ignored until proven to be effectively a bottleneck of your code, in any case with a huge string set the solution could be a trie. In Java 8 you could do public static boolean containsWords(S...