Data Type Java

//package com.ryanm.util.text;
import java.util.ArrayList;
import java.util.List;
/**
 * Utility methods for dealing with text
 * 
 * @author ryanm
 */
class TextUtils {
  /**
   * Tests if s starts with t, ignoring the case of the characters
   * 
   * @param s
   * @param t
   * @return true if s.toLowerCase().equals( t.toLowerCase() ),
   *         but more efficiently
   */
  public static boolean startsWithIgnoreCase(CharSequence s, CharSequence t) {
    if (s.length() < t.length()) {
      return false;
    }
    for (int i = 0; i < t.length(); i++) {
      char slc = Character.toLowerCase(s.charAt(i));
      char tlc = Character.toLowerCase(t.charAt(i));
      if (slc != tlc) {
        return false;
      }
    }
    return true;
  }
  /**
   * See {@link String#compareToIgnoreCase(String)}
   * 
   * @param s
   * @param t
   * @return See {@link String#compareToIgnoreCase(String)}
   */
  public static int compareToIgnoreCase(CharSequence s, CharSequence t) {
    int i = 0;
    while (i < s.length() && i < t.length()) {
      char a = Character.toLowerCase(s.charAt(i));
      char b = Character.toLowerCase(t.charAt(i));
      int diff = a - b;
      if (diff != 0) {
        return diff;
      }
      i++;
    }
    return s.length() - t.length();
  }
  /**
   * See {@link String#compareTo(String)}
   * 
   * @param s
   * @param t
   * @return See {@link String#compareTo(String)}
   */
  public static int compareTo(CharSequence s, CharSequence t) {
    int i = 0;
    while (i < s.length() && i < t.length()) {
      char a = s.charAt(i);
      char b = t.charAt(i);
      int diff = a - b;
      if (diff != 0) {
        return diff;
      }
      i++;
    }
    return s.length() - t.length();
  }
  /**
   * Splits a string
   * 
   * @param composite
   *            The composite string
   * @param leftBracket
   *            the opening parenthesis character
   * @param rightBracket
   *            the closing parenthesis character
   * @param separator
   *            The character that separates tokens. Separators that lie
   *            between at least one pair of parenthesis are ignored
   * @return An array of individual tokens
   */
  public static String[] split(String composite, char leftBracket,
      char rightBracket, char separator) {
    List c = new ArrayList();
    int start = 0;
    int i;
    int lbcount = 0;
    for (i = 0; i < composite.length(); i++) {
      if (composite.charAt(i) == leftBracket) {
        lbcount++;
      } else if (composite.charAt(i) == rightBracket) {
        lbcount--;
      } else if (composite.charAt(i) == separator && lbcount == 0) {
        c.add(composite.substring(start, i).trim());
        start = i + 1;
      }
    }
    c.add(composite.substring(start, i).trim());
    return c.toArray(new String[c.size()]);
  }
  /**
   * Wraps the input string in {@code } and breaks it up into
   * lines with {@code 
} elements. Useful for making multi-line tootips
   * and the like.
   * 
   * @param s
   *            The input String
   * @param lineLength
   *            The desired length of the output lines.
   * @return The HTMLised string
   */
  public static String HTMLiseString(String s, int lineLength) {
    if (s != null) {
      StringBuilder buff = new StringBuilder(s);
      int lineStart = 0;
      while (lineStart + lineLength < s.length()) {
        // find the first whitespace after the linelength
        int firstSpaceIndex = buff.indexOf(" ", lineStart + lineLength);
        // replace it with a 

        if (firstSpaceIndex != -1) {
          buff.deleteCharAt(firstSpaceIndex);
          buff.insert(firstSpaceIndex, "
");
          lineStart = firstSpaceIndex + 4;
        } else {
          lineStart = s.length();
        }
      }
      buff.insert(0, "");
      buff.append("");
      return buff.toString();
    }
    return null;
  }
}