code: public static int indexOfAnyBut(String str, char[] searchChars) {
        if (isEmpty(str) ||searchChars == null) {
            return -1;
        }
        outer : for (int i = 0; i < str.length(); i++) {
            char ch = str.charAt(i);
            for (int j = 0; j < searchChars.length; j++) {
                if (searchChars[j] == ch) {
                    continue outer;
                }
            }
            return i;
        }
        return -1;
    }
docs: <p>Search a String to find the first index of any
  character not in the given set of characters.</p>
  
  <p>A <code>null</code> String will return <code>-1</code>.
  A <code>null</code> or zero length search array will return <code>-1</code>.</p>
  
  <pre>
  GosuStringUtil.indexOfAnyBut(null, *)           = -1
  GosuStringUtil.indexOfAnyBut("", *)             = -1
  GosuStringUtil.indexOfAnyBut(*, null)           = -1
  GosuStringUtil.indexOfAnyBut(*, [])             = -1
  GosuStringUtil.indexOfAnyBut("zzabyycdxx",'za') = 3
  GosuStringUtil.indexOfAnyBut("zzabyycdxx", '')  = 0
  GosuStringUtil.indexOfAnyBut("aba", 'ab')       = -1
  </pre>
  
  @param str  the String to check, may be null
  @param searchChars  the chars to search for, may be null
  @return the index of any of the chars, -1 if no match or null input
  @since 2.0