in src/main/java/org/apache/commons/codec/language/RefinedSoundex.java [190:220]
public String soundex(String str) {
if (str == null) {
return null;
}
str = SoundexUtils.clean(str);
if (str.isEmpty()) {
return str;
}
final StringBuilder sBuf = new StringBuilder();
sBuf.append(str.charAt(0));
char last, current;
last = '*';
for (int i = 0; i < str.length(); i++) {
current = getMappingCode(str.charAt(i));
if (current == last) {
continue;
}
if (current != 0) {
sBuf.append(current);
}
last = current;
}
return sBuf.toString();
}