Find the latest index of any of a set of potential substrings. : String substring « Data Type « Java






Find the latest index of any of a set of potential substrings.

     


/**
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */




/**
 * <p>Operations on {@link java.lang.String} that are
 * <code>null</code> safe.</p>

 *
 * @see java.lang.String
 * @author <a href="http://jakarta.apache.org/turbine/">Apache Jakarta Turbine</a>
 * @author <a href="mailto:jon@latchkey.com">Jon S. Stevens</a>
 * @author Daniel L. Rall
 * @author <a href="mailto:gcoladonato@yahoo.com">Greg Coladonato</a>
 * @author <a href="mailto:ed@apache.org">Ed Korthof</a>
 * @author <a href="mailto:rand_mcneely@yahoo.com">Rand McNeely</a>
 * @author Stephen Colebourne
 * @author <a href="mailto:fredrik@westermarck.com">Fredrik Westermarck</a>
 * @author Holger Krauth
 * @author <a href="mailto:alex@purpletech.com">Alexander Day Chaffee</a>
 * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
 * @author Arun Mammen Thomas
 * @author Gary Gregory
 * @author Phil Steitz
 * @author Al Chou
 * @author Michael Davey
 * @author Reuben Sivan
 * @author Chris Hyzer
 * @author Scott Johnson
 * @since 1.0
 * @version $Id: StringUtils.java 635447 2008-03-10 06:27:09Z bayard $
 */
public class Main {

  /**
   * <p>Find the latest index of any of a set of potential substrings.</p>
   *
   * <p>A <code>null</code> String will return <code>-1</code>.
   * A <code>null</code> search array will return <code>-1</code>.
   * A <code>null</code> or zero length search array entry will be ignored,
   * but a search array containing "" will return the length of <code>str</code>
   * if <code>str</code> is not null. This method uses {@link String#indexOf(String)}</p>
   *
   * <pre>
   * StringUtils.lastIndexOfAny(null, *)                   = -1
   * StringUtils.lastIndexOfAny(*, null)                   = -1
   * StringUtils.lastIndexOfAny(*, [])                     = -1
   * StringUtils.lastIndexOfAny(*, [null])                 = -1
   * StringUtils.lastIndexOfAny("zzabyycdxx", ["ab","cd"]) = 6
   * StringUtils.lastIndexOfAny("zzabyycdxx", ["cd","ab"]) = 6
   * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn","op"]) = -1
   * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn","op"]) = -1
   * StringUtils.lastIndexOfAny("zzabyycdxx", ["mn",""])   = 10
   * </pre>
   *
   * @param str  the String to check, may be null
   * @param searchStrs  the Strings to search for, may be null
   * @return the last index of any of the Strings, -1 if no match
   */
  public static int lastIndexOfAny(String str, String[] searchStrs) {
      if ((str == null) || (searchStrs == null)) {
          return -1;
      }
      int sz = searchStrs.length;
      int ret = -1;
      int tmp = 0;
      for (int i = 0; i < sz; i++) {
          String search = searchStrs[i];
          if (search == null) {
              continue;
          }
          tmp = str.lastIndexOf(search);
          if (tmp > ret) {
              ret = tmp;
          }
      }
      return ret;
  }
  // ----------------------------------------------------------------------
  /**
   * <p>Checks if an array of Objects is empty or <code>null</code>.</p>
   *
   * @param array  the array to test
   * @return <code>true</code> if the array is empty or <code>null</code>
   * @since 2.1
   */
  public static boolean isEmpty(char[] array) {
      if (array == null || array.length == 0) {
          return true;
      }
      return false;
  }
  // Empty checks
  //-----------------------------------------------------------------------
  /**
   * <p>Checks if a String is empty ("") or null.</p>
   *
   * <pre>
   * StringUtils.isEmpty(null)      = true
   * StringUtils.isEmpty("")        = true
   * StringUtils.isEmpty(" ")       = false
   * StringUtils.isEmpty("bob")     = false
   * StringUtils.isEmpty("  bob  ") = false
   * </pre>
   *
   * <p>NOTE: This method changed in Lang version 2.0.
   * It no longer trims the String.
   * That functionality is available in isBlank().</p>
   *
   * @param str  the String to check, may be null
   * @return <code>true</code> if the String is empty or null
   */
  public static boolean isEmpty(String str) {
      return str == null || str.length() == 0;
  }

}

   
    
    
    
    
  








Related examples in the same category

1.uses substrings to replace all the vowels in a string entered by the user with asterisks:
2.SubString DemoSubString Demo
3.Getting a substring from a String
4.Check if String Contains another String
5.Remove a character at a specified position using String.substring
6.Substrings First occurrence
7.Last occurrence of a substring
8.Find the first index of any of a set of potential substrings.
9.Gets the substring after the first occurrence of a separator. The separator is not returned.
10.Gets the substring after the last occurrence of a separator. The separator is not returned.
11.Gets the substring before the first occurrence of a separator. The separator is not returned.
12.Gets the substring before the last occurrence of a separator. The separator is not returned.
13.Overlays part of a String with another String.
14.Gets len characters from the middle of a String.
15.Gets the String that is nested in between two Strings. Only the first match is returned.
16.Gets the String that is nested in between two instances of the same String.
17.Gets a substring from the specified String avoiding exceptions
18.Count the number of instances of substring within a string
19.Counts how many times the substring appears in the larger String.
20.Return a slice (substring) of the passed in value, optionally trimmed.
21.Returns an array of strings that contains all strings given by the first and second string array.
22.Returns a string that contains all given strings concatenated and separated by the specified separator.
23.Returns all elements of string array in a new array from index start up to index end (inclusive).
24.Returns all elements of string array from in a new array from index start up to index end (inclusive).
25.Returns the portion of the given string that comes before the last occurance of the specified separator.
26.Returns the portion of the given string that stands after the last occurance of the specified separator.
27.Returns a title-cased version of the specified word
28.Longest Starting Match