Q:

Searching for one string in another string

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.

A:

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

String API links

boolean startsWith(String prefix)

Tests if this string starts with the specified prefix. 

boolean endsWith(String suffix)

Tests if this string ends with the specified suffix. 

boolean contains(CharSequence s)

Returns true if and only if this string contains the specified sequence of char values.

int indexOf(String s)

Returns the index within this string of the first occurrence of the specified substring.

-1 if there's no occurrence

Finding indices of all occurrences
Here'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"

A:

Use the contains or indexOf methods, depending on whether you need the position.

