public class Nysiis extends Object implements org.apache.commons.codec.StringEncoder
NYSIIS features an accuracy increase of 2.7% over the traditional Soundex algorithm.
Algorithm description:
1. Transcode first characters of name 1a. MAC -> MCC 1b. KN -> NN 1c. K -> C 1d. PH -> FF 1e. PF -> FF 1f. SCH -> SSS 2. Transcode last characters of name 2a. EE, IE -> Y 2b. DT,RT,RD,NT,ND -> D 3. First character of key = first character of name 4. Transcode remaining characters by following these rules, incrementing by one character each time 4a. EV -> AF else A,E,I,O,U -> A 4b. Q -> G 4c. Z -> S 4d. M -> N 4e. KN -> N else K -> C 4f. SCH -> SSS 4g. PH -> FF 4h. H -> If previous or next is nonvowel, previous 4i. W -> If previous is vowel, previous 4j. Add current to key if current != last key character 5. If last character is S, remove it 6. If last characters are AY, replace with Y 7. If last character is A, remove it 8. Collapse all strings of repeated characters 9. Add original first character of name as first character of key
| Constructor and Description |
|---|
Nysiis()
Creates an instance of the
Nysiis encoder with strict mode
(original form), i.e. |
Nysiis(boolean strict)
Create an instance of the
Nysiis encoder with the specified
strict mode:
true: encoded strings have a maximum length of 6 false:
encoded strings may have arbitrary length |
| Modifier and Type | Method and Description |
|---|---|
Object |
encode(Object obj)
Encodes an Object using the NYSIIS algorithm.
|
String |
encode(String str)
Encodes a String using the NYSIIS algorithm.
|
boolean |
isStrict()
Indicates the strict mode for this
Nysiis encoder. |
String |
nysiis(String str)
Retrieves the NYSIIS code for a given String object.
|
public Nysiis()
Nysiis encoder with strict mode
(original form), i.e. encoded strings have a maximum length of 6.public Nysiis(boolean strict)
Nysiis encoder with the specified
strict mode:
true: encoded strings have a maximum length of 6false:
encoded strings may have arbitrary lengthstrict - the strict modepublic Object encode(Object obj) throws org.apache.commons.codec.EncoderException
EncoderException if the supplied object is not of type
String.encode in interface org.apache.commons.codec.Encoderobj - Object to encodeString) containing the NYSIIS code which
corresponds to the given String.org.apache.commons.codec.EncoderException - if the parameter supplied is not of a StringIllegalArgumentException - if a character is not mappedpublic String encode(String str)
encode in interface org.apache.commons.codec.StringEncoderstr - A String object to encodeIllegalArgumentException - if a character is not mappedpublic boolean isStrict()
Nysiis encoder.true if the encoder is configured for strict mode, false
otherwiseCopyright © 2009–2016. All rights reserved.