FileDocCategorySizeDatePackage
Search.javaAPI DocExample1569Fri Mar 30 00:15:12 BST 2001None

Search

public class Search extends Object

Fields Summary
Constructors Summary
Methods Summary
public static intindexOf(java.lang.String source, java.lang.String pattern)

    // Obtain a collator
    RuleBasedCollator rbc=(RuleBasedCollator)Collator.getInstance();
    rbc.setStrength(Collator.SECONDARY);

    CollationElementIterator textCEI;
    CollationElementIterator patCEI;
    textCEI = rbc.getCollationElementIterator(source);
    patCEI = rbc.getCollationElementIterator(pattern);

    // e1 will contain the collation element for the source
    // e2 will contain the collation element for the pattern
    int e1, e2;
    int startMatch = -1;

    // initialize e2 with the first collation element in the pattern
    e2 = patCEI.next();

    while ((e1 = textCEI.next())!=CollationElementIterator.NULLORDER) {
      if (e1 == e2) { // if the elements match
        if (startMatch == -1) startMatch = textCEI.getOffset();
        e2 = patCEI.next(); // increment to the next element
        if (e2 == CollationElementIterator.NULLORDER)
          break;
      } else { // elements do not match
        if (startMatch != -1) {
          patCEI.reset();
          e2 = patCEI.next();
          startMatch = -1;
        }
      }
    }
    return startMatch;
  
public static voidmain(java.lang.String[] args)

    String text = "Wie hei\u00DFen Sie?"; // Wie heißen Sie?
    String pattern = "heissen";

    int index = indexOf(text, pattern);
    if (index != -1)
      System.out.println("Found a match at: " + index);
    else
      System.out.println("No match found!");