public class ColognePhonetic
extends java.lang.Object
Encodes a string into a Cologne Phonetic value.
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 |
(Source: Wikipedia (de): Kölner Phonetik -- Buchstabencodes)
"M
üller-L
üdenscheidt" => "MULLERLUDENSCHEIDT" => "6005507500206880022"
"6005507500206880022" => "6050750206802"
"6050750206802" => "65752682"
Modifier and Type | Class and Description |
---|---|
private class |
ColognePhonetic.CologneBuffer |
private class |
ColognePhonetic.CologneInputBuffer |
private class |
ColognePhonetic.CologneOutputBuffer |
Modifier and Type | Field and Description |
---|---|
private static char[][] |
PREPROCESS_MAP
Maps some Germanic characters to plain for internal processing.
|
Constructor and Description |
---|
ColognePhonetic() |
Modifier and Type | Method and Description |
---|---|
private static boolean |
arrayContains(char[] arr,
char key) |
java.lang.String |
colognePhonetic(java.lang.String text)
Implements the Kölner Phonetik algorithm.
|
java.lang.Object |
encode(java.lang.Object object) |
java.lang.String |
encode(java.lang.String text) |
boolean |
isEncodeEqual(java.lang.String text1,
java.lang.String text2) |
private java.lang.String |
preprocess(java.lang.String text)
Converts the string to upper case and replaces germanic characters as defined in
PREPROCESS_MAP . |
private static final char[][] PREPROCESS_MAP
private static boolean arrayContains(char[] arr, char key)
public java.lang.String colognePhonetic(java.lang.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
- public java.lang.Object encode(java.lang.Object object) throws EncoderException
EncoderException
public java.lang.String encode(java.lang.String text)
public boolean isEncodeEqual(java.lang.String text1, java.lang.String text2)
private java.lang.String preprocess(java.lang.String text)
PREPROCESS_MAP
.