Java tutorial
import java.text.CollationElementIterator; import java.text.Collator; import java.text.RuleBasedCollator; public class Search { public static int indexOf(String source, String pattern) { 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 void main(String[] args) { String text = "Wie hei\u00DFen Sie?"; // Wie heien 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!"); } }