public class ColognePhonetic extends Object implements StringEncoder
Implements the Kölner Phonetik (Cologne Phonetic) algorithm issued by Hans Joachim Postel in 1969.
The Kölner Phonetik is a phonetic algorithm which is optimized for the German language. It is related to the well-known soundex algorithm.
Letter | Context | Code |
---|---|---|
A, E, I, J, O, U, Y | 0 | |
H | - | |
B | 1 | |
P | not before H | |
D, T | not before C, S, Z | 2 |
F, V, W | 3 | |
P | before H | |
G, K, Q | 4 | |
C | at onset before A, H, K, L, O, Q, R, U, X | |
before A, H, K, O, Q, U, X except after S, Z | ||
X | not after C, K, Q | 48 |
L | 5 | |
M, N | 6 | |
R | 7 | |
S, Z | 8 | |
C | after S, Z | |
at onset except before A, H, K, L, O, Q, R, U, X | ||
not before A, H, K, O, Q, U, X | ||
D, T | before C, S, Z | |
X | after C, K, Q |
"M
üller-L
üdenscheidt"
=> "MULLERLUDENSCHEIDT" => "6005507500206880022"
"6005507500206880022" => "6050750206802"
"6050750206802" => "65752682"
This class is thread-safe.
Constructor and Description |
---|
ColognePhonetic() |
Modifier and Type | Method and Description |
---|---|
String |
colognePhonetic(String text)
Implements the Kölner Phonetik algorithm.
|
Object |
encode(Object object)
Encodes an "Object" and returns the encoded content as an Object.
|
String |
encode(String text)
Encodes a String and returns a String.
|
boolean |
isEncodeEqual(String text1,
String text2)
Compares the first encoded string to the second encoded string.
|
public String colognePhonetic(String text)
Implements the Kölner Phonetik algorithm.
In contrast to the initial description of the algorithm, this implementation does the encoding in one pass.
text
- The source text to encodepublic Object encode(Object object) throws EncoderException
Encoder
byte[]
or String
s depending on the implementation used.encode
in interface Encoder
object
- An object to encodeEncoderException
- An encoder exception is thrown if the encoder experiences a failure condition during the encoding
process.public String encode(String text)
StringEncoder
encode
in interface StringEncoder
text
- the String to encodepublic boolean isEncodeEqual(String text1, String text2)
text1
- source text to encode before testing for equality.text2
- source text to encode before testing for equality.true
if the encoding the first string equals the encoding of the second string, false
otherwiseCopyright © 2002–2020 The Apache Software Foundation. All rights reserved.