/** * Retreives the Soundex code for a given String object. * * @param str String to encode using the Soundex algorithm * @return A soundex code for the String supplied * @throws IllegalArgumentException if a character is not mapped */ @DSGenerator( tool_name = "Doppelganger", tool_version = "2.0", generated_on = "2014-09-03 14:59:48.718 -0400", hash_original_method = "0EBBB65C00DFAFB7B6E0400F5755712C", hash_generated_method = "94B188BA634D9793A5790601BA8B7F45") public String soundex(String str) { if (str == null) { return null; } str = SoundexUtils.clean(str); if (str.length() == 0) { return str; } char out[] = {'0', '0', '0', '0'}; char last, mapped; int incount = 1, count = 1; out[0] = str.charAt(0); last = getMappingCode(str, 0); while ((incount < str.length()) && (count < out.length)) { mapped = getMappingCode(str, incount++); if (mapped != 0) { if ((mapped != '0') && (mapped != last)) { out[count++] = mapped; } last = mapped; } } return new String(out); }
/** * Encodes the Strings and returns the number of characters in the two encoded Strings that are * the same. This return value ranges from 0 through 4: 0 indicates little or no similarity, and 4 * indicates strong similarity or identical values. * * @param s1 A String that will be encoded and compared. * @param s2 A String that will be encoded and compared. * @return The number of characters in the two encoded Strings that are the same from 0 to 4. * @see <a * href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_de-dz_8co5.asp"> * MS T-SQL DIFFERENCE </a> * @throws EncoderException if an error occurs encoding one of the strings * @since 1.3 */ @DSGenerator( tool_name = "Doppelganger", tool_version = "2.0", generated_on = "2014-09-03 14:59:48.711 -0400", hash_original_method = "9372A1D570FF0E071E2A73F0471280C8", hash_generated_method = "73E7D5E07B73B540EF5D01C579CF6548") public int difference(String s1, String s2) throws EncoderException { return SoundexUtils.difference(this, s1, s2); }