in src/main/java/org/apache/commons/codec/language/DoubleMetaphone.java [870:892]
private int handleSC(final String value, final DoubleMetaphoneResult result, final int index) {
if (charAt(value, index + 2) == 'H') {
//-- Schlesinger's rule --//
if (contains(value, index + 3, 2, "OO", "ER", "EN", "UY", "ED", "EM")) {
//-- Dutch origin, for example "school", "schooner" --//
if (contains(value, index + 3, 2, "ER", "EN")) {
//-- "schermerhorn", "schenker" --//
result.append("X", "SK");
} else {
result.append("SK");
}
} else if (index == 0 && !isVowel(charAt(value, 3)) && charAt(value, 3) != 'W') {
result.append('X', 'S');
} else {
result.append('X');
}
} else if (contains(value, index + 2, 1, "I", "E", "Y")) {
result.append('S');
} else {
result.append("SK");
}
return index + 3;
}