Hey
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.
Hey
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"
If you know how to search a String
inside another String
, you would know how to loop in a String
table. You could use indexOf
as someone else has suggested or you could use regex
if it more complex.