All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.bukkit.util.StringUtil Maven / Gradle / Ivy

The newest version!
package org.bukkit.util;

import org.apache.commons.lang.Validate;

import java.util.Collection;

public class StringUtil {

  /**
   * Copies all elements from the iterable collection of originals to the
   * collection provided.
   *
   * @param         the collection of strings
   * @param token      String to search for
   * @param originals  An iterable collection of strings to filter.
   * @param collection The collection to add matches to
   * @return the collection provided that would have the elements copied
   * into
   * @throws UnsupportedOperationException if the collection is immutable
   *                                       and originals contains a string which starts with the specified
   *                                       search string.
   * @throws IllegalArgumentException      if any parameter is is null
   * @throws IllegalArgumentException      if originals contains a null element.
   *                                       Note: the collection may be modified before this is thrown
   */
  public static > T copyPartialMatches(final String token, final Iterable originals, final T collection) throws UnsupportedOperationException, IllegalArgumentException {
    Validate.notNull(token, "Search token cannot be null");
    Validate.notNull(collection, "Collection cannot be null");
    Validate.notNull(originals, "Originals cannot be null");

    for (String string : originals) {
      if (startsWithIgnoreCase(string, token)) {
        collection.add(string);
      }
    }

    return collection;
  }

  /**
   * This method uses a region to check case-insensitive equality. This
   * means the internal array does not need to be copied like a
   * toLowerCase() call would.
   *
   * @param string String to check
   * @param prefix Prefix of string to compare
   * @return true if provided string starts with, ignoring case, the prefix
   * provided
   * @throws NullPointerException     if prefix is null
   * @throws IllegalArgumentException if string is null
   */
  public static boolean startsWithIgnoreCase(final String string, final String prefix) throws IllegalArgumentException, NullPointerException {
    Validate.notNull(string, "Cannot check a null string for a match");
    if (string.length() < prefix.length()) {
      return false;
    }
    return string.regionMatches(true, 0, prefix, 0, prefix.length());
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy