Compare two char sequences : String char « Data Type « Java






Compare two char sequences

       

//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 <code>true</code> 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<String> c = new ArrayList<String>();

    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 <html></html>} and breaks it up into
   * lines with {@code <br>} 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 <br>
        if (firstSpaceIndex != -1) {
          buff.deleteCharAt(firstSpaceIndex);
          buff.insert(firstSpaceIndex, "<br>");
          lineStart = firstSpaceIndex + 4;
        } else {
          lineStart = s.length();
        }
      }

      buff.insert(0, "<html>");
      buff.append("</html>");

      return buff.toString();
    }

    return null;
  }

}

   
    
    
    
    
    
    
  








Related examples in the same category

1.StrCharAt - show String.charAt()
2.Basic tab-character handling stuff
3.Convert Characters to Lower Case
4.Convert Characters to Upper Case
5.Replace Characters in a String
6.Character array to String conversion
7.Convert String to character array
8.Last occurrence of a character
9.Extract Ascii codes from a String
10.To remove a character
11.Removes specified chars from a string
12.Checks if a String is not empty (""), not null and not whitespace only.
13.Checks if a String is whitespace, empty ("") or null.
14.Checks if the String contains any character in the given set of characters.
15.Checks if the String contains only certain characters.
16.Checks if the String contains only whitespace.
17.Checks if the string contains only ASCII printable characters.
18.Checks that the String does not contain certain characters.
19.The character array based string
20.Checks whether the String contains only digit characters.
21.Remove char from a string
22.Remove whitespace from the ends as well as excessive whitespace within the inside of the string between non-whitespace characters.
23.Removes any hypens ( - ) from the given string
24.Returns a new string with all the whitespace removed
25.Is char a white space character
26.Simple scanner that allows to navigate over the characters of a string.
27.Returns a string with size of count and all characters initialized with ch.
28.Returns a string that contains all characters of the given string in reverse order.
29.Returns a string that is equivalent to the specified string with its first character converted to uppercase
30.Count the number of occurrences of character c in a string.
31.A fast way to convert character arrays into Strings.
32.XML utilities that pertain to character handling (markup or character data), without use of any XML libraries.
33.Check whether the given String contains any whitespace characters.
34.Character utilities.
35.Provides a number of static methods which interact with java.nio.charset.Charset to analyze and transform the strings identifing character encodings.
36.Operations on char primitives and Character objects.
37.Cleans strings of illegal characters with respect to the XML specification.
38.Return the result of adding the specified character to the specified sorted character array.
39.Return a displayable version of the character sequence, followed by integer positions at various powers of 10.
40.Returns the string constructed from the specified character sequence by deaccenting each of its characters.
41.Returns a hash code for a character sequence that is equivalent to the hash code generated for a its string yield.
42.Return true if the two character sequences have the same length and the same characters.
43.Returns an array of substrings of the specified string, in order, with divisions before and after any instance of the specified character.
44.Returns true if specified character is a punctuation character.
45.Appends a whitespace-normalized form of the specified character sequence into the specified string buffer.
46.Determine whether characters may appear in certain roles in XML documents.
47.Advanced navigation over the underlying string.
48.Contents As CharSequence