|
public
class
Soundex
{
private
Soundex()
{
}
public
static
String SoundexCodeConverter(String s_String)
{
String s_word = s_String.ToUpper();
StringBuilder s_soundexCode =
new
StringBuilder();
int
i_wordLength = s_word.Length;
s_soundexCode.Append(s_word.Substring(0,1));
for
(
int
i=1; i
{
String s_transformedChar = Transform(s_word.Substring(i,1));
if
(!s_transformedChar.Equals( s_soundexCode.ToString().Substring(s_soundexCode.Length - 1) ))
{
if
(!s_transformedChar.Equals("A") && !s_transformedChar.Equals("S"))
{
if
(!s_transformedChar.Equals(" "))
{
s_soundexCode.Append(s_transformedChar);
}
}
}
}
s_soundexCode.Append("0000");
return
s_soundexCode.ToString().Substring(0,4);
}
}
private
static
String Transform(String s_String)
{
switch
(s_String)
{
case
"A":
case
"E":
case
"I":
case
"O":
case
"U":
case
"Y":
return
"A";
case
"H":
case
"W":
return
"S";
case
"B":
case
"F":
case
"P":
case
"V":
return
"1";
case
"C":
case
"G":
case
"J":
case
"K":
case
"Q":
case
"S":
case
"X":
case
"Z":
return
"2";
case
"D":
case
"T":
return
"3";
case
"L":
return
"4";
case
"M":
case
"N":
return
"5";
case
"R":
return
"6";
}
return
" ";
}
blog:
http://www.styledesign.biz/weblogs/macinnesm/
|