org.apache.commons.codec.language

Class Metaphone

public class Metaphone extends Object implements StringEncoder

Encodes a string into a metaphone value.

Initial Java implementation by William B. Brogden. December, 1997. Permission given by wbrogden for code to be used anywhere.

Hanging on the Metaphone by Lawrence Philips in Computer Language of Dec. 1990, p 39.

Version: $Id: Metaphone.java 130375 2004-06-05 18:32:04Z ggregory $

Author: Apache Software Foundation

Field Summary
Stringfrontv
Variable used in Metaphone algorithm
intmaxCodeLen
The max code length for metaphone is 4
Stringvarson
Variable used in Metaphone algorithm
Stringvowels
Five values in the English language
Constructor Summary
Metaphone()
Creates an instance of the Metaphone encoder
Method Summary
Objectencode(Object pObject)
Encodes an Object using the metaphone algorithm.
Stringencode(String pString)
Encodes a String using the Metaphone algorithm.
intgetMaxCodeLen()
Returns the maxCodeLen.
booleanisLastChar(int wdsz, int n)
booleanisMetaphoneEqual(String str1, String str2)
Tests is the metaphones of two strings are identical.
booleanisNextChar(StringBuffer string, int index, char c)
booleanisPreviousChar(StringBuffer string, int index, char c)
booleanisVowel(StringBuffer string, int index)
Stringmetaphone(String txt)
Find the metaphone value of a String.
booleanregionMatch(StringBuffer string, int index, String test)
voidsetMaxCodeLen(int maxCodeLen)
Sets the maxCodeLen.

Field Detail

frontv

private String frontv
Variable used in Metaphone algorithm

maxCodeLen

private int maxCodeLen
The max code length for metaphone is 4

varson

private String varson
Variable used in Metaphone algorithm

vowels

private String vowels
Five values in the English language

Constructor Detail

Metaphone

public Metaphone()
Creates an instance of the Metaphone encoder

Method Detail

encode

public Object encode(Object pObject)
Encodes an Object using the metaphone algorithm. This method is provided in order to satisfy the requirements of the Encoder interface, and will throw an EncoderException if the supplied object is not of type java.lang.String.

Parameters: pObject Object to encode

Returns: An object (or type java.lang.String) containing the metaphone code which corresponds to the String supplied.

Throws: EncoderException if the parameter supplied is not of type java.lang.String

encode

public String encode(String pString)
Encodes a String using the Metaphone algorithm.

Parameters: pString String object to encode

Returns: The metaphone code corresponding to the String supplied

getMaxCodeLen

public int getMaxCodeLen()
Returns the maxCodeLen.

Returns: int

isLastChar

private boolean isLastChar(int wdsz, int n)

isMetaphoneEqual

public boolean isMetaphoneEqual(String str1, String str2)
Tests is the metaphones of two strings are identical.

Parameters: str1 First of two strings to compare str2 Second of two strings to compare

Returns: true if the metaphones of these strings are identical, false otherwise.

isNextChar

private boolean isNextChar(StringBuffer string, int index, char c)

isPreviousChar

private boolean isPreviousChar(StringBuffer string, int index, char c)

isVowel

private boolean isVowel(StringBuffer string, int index)

metaphone

public String metaphone(String txt)
Find the metaphone value of a String. This is similar to the soundex algorithm, but better at finding similar sounding words. All input is converted to upper case. Limitations: Input format is expected to be a single ASCII word with only characters in the A - Z range, no punctuation or numbers.

Parameters: txt String to find the metaphone code for

Returns: A metaphone code corresponding to the String supplied

regionMatch

private boolean regionMatch(StringBuffer string, int index, String test)

setMaxCodeLen

public void setMaxCodeLen(int maxCodeLen)
Sets the maxCodeLen.

Parameters: maxCodeLen The maxCodeLen to set

commons-codec version 1.3 - Copyright © 2002-2004 - Apache Software Foundation