Let's say I have String Table that have a few strings (like mother, father, son) and now in this String Table I want to find every word that contains string "th" for example.
How should I do it? Method string.equals(string) won't help here.
The following snippet should be instructive:
String[] tests = {
"father",
"mammoth",
"thumb",
"xxx",
};
String fmt = "%8s%12s%12s%12s%12s%n";
System.out.format(fmt,
"String", "startsWith", "endsWith", "contains", "indexOf");
for (String test : tests) {
System.out.format(fmt, test,
test.startsWith("th"),
test.endsWith("th"),
test.contains("th"),
test.indexOf("th")
);
}
This prints:
String startsWith endsWith contains indexOf
father false false true 2
mammoth false true true 5
thumb true false true 0
xxx false false false -1
boolean startsWith(String prefix)
boolean endsWith(String suffix)
boolean contains(CharSequence s)
true if and only if this string contains the specified sequence of char values.int indexOf(String s)
-1 if there's no occurrenceHere's an example of using indexOf and lastIndexOf with the startingFrom argument to find all occurrences of a substring within a larger string, forward and backward.
String text = "012ab567ab0123ab";
// finding all occurrences forward
for (int i = -1; (i = text.indexOf("ab", i+1)) != -1; ) {
System.out.println(i);
} // prints "3", "8", "14"
// finding all occurrences backward
for (int i = text.length(); (i = text.lastIndexOf("ab", i-1)) != -1; ) {
System.out.println(i);
} // prints "14", "8", "3"
Use the contains or indexOf methods, depending on whether you need the position.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With