Redacting everything in a string except a particular word
Manipulating Strings directly is a bad idea, especially when you are doing it repeatedly.  Java strings are immutable, so every time you do s += …, you are making a copy of the entire provisional result.  Anytime you need to do a substantial amount of editing on a string, use a StringBuilder.

To look for the next occurrence of word, use String.indexOf() or StringBuilder.indexOf().  It's a lot easier than extracting substrings and checking for equality.  When extracting the substring, your code crashes if word is longer than three characters.  Using .indexOf() is one way to eliminate that problem.

Here is an example of a more efficient solution:

public String plusOut(String str, String word) {
    StringBuilder s = new StringBuilder(str);

    // Find substrings to redact, from index i (inclusive)
    // to index j (exclusive)
    for (int i = 0; i &lt; s.length(); i += word.length()) {
        int j = s.indexOf(word, i);
        if (j &lt; 0) {
            // word not found; redact the rest of the string
            j = s.length();
        }

        while (i &lt; j) {
            s.setCharAt(i++, '+');
        }
    }
    return s.toString();
}