public class Nysiis extends java.lang.Object implements StringEncoder
NYSIIS features an accuracy increase of 2.7% over the traditional Soundex algorithm.
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
This class is immutable and thread-safe.
|Constructor and Description|
Creates an instance of the
Create an instance of the
|Modifier and Type||Method and Description|
Encodes an Object using the NYSIIS algorithm.
Encodes a String using the NYSIIS algorithm.
Indicates the strict mode for this
Retrieves the NYSIIS code for a given String object.
Nysiisencoder with strict mode (original form), i.e. encoded strings have a maximum length of 6.
public Nysiis(boolean strict)
Nysiisencoder with the specified strict mode:
true: encoded strings have a maximum length of 6
false: encoded strings may have arbitrary length
strict- the strict mode
public java.lang.Object encode(java.lang.Object obj) throws EncoderException
EncoderExceptionif the supplied object is not of type
obj- Object to encode
String) containing the NYSIIS code which corresponds to the given String.
EncoderException- if the parameter supplied is not of a
java.lang.IllegalArgumentException- if a character is not mapped
public java.lang.String encode(java.lang.String str)
public boolean isStrict()
trueif the encoder is configured for strict mode,
public java.lang.String nysiis(java.lang.String str)
str- String to encode using the NYSIIS algorithm
"Copyright © 2010 - 2018 Adobe Systems Incorporated. All Rights Reserved"