To check if string contains particular word
Not as complicated as they say, check this you will not regret.
String sentence = "Check this answer and you can find the keyword with this code";
String search = "keyword";
if ( sentence.toLowerCase().indexOf(search.toLowerCase()) != -1 ) {
System.out.println("I found the keyword");
} else {
System.out.println("not found");
}
You can change the toLowerCase()
if you want.
You can use regular expressions:
if (d.matches(".*Hey.*")) {
c.setText("OUTPUT: SUCCESS!");
} else {
c.setText("OUTPUT: FAIL!");
}
.*
-> 0 or more of any characters
Hey
-> The string you want
If you will be checking this often, it is better to compile the regular expression in a Pattern
object and reuse the Pattern
instance to do the checking.
private static final Pattern HEYPATTERN = Pattern.compile(".*Hey.*");
[...]
if (HEYPATTERN.matcher(d).matches()) {
c.setText("OUTPUT: SUCCESS!");
} else {
c.setText("OUTPUT: FAIL!");
}
Just note this will also match "Heyburg"
for example since you didn't specify you're searching for "Hey"
as an independent word. If you only want to match Hey
as a word, you need to change the regex to .*\\bHey\\b.*
.contains()
is perfectly valid and a good way to check.
(http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#contains(java.lang.CharSequence))
Since you didn't post the error, I guess d
is either null or you are getting the "Cannot refer to a non-final variable inside an inner class defined in a different method" error.
To make sure it's not null, first check for null in the if statement. If it's the other error, make sure d
is declared as final
or is a member variable of your class. Ditto for c
.