2. 名字編碼
namespace Q2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Dictionary<char, int> map = new Dictionary<char, int>();
foreach (var item in "B, P, F, V 1\r\nC, S, K, G, J, Q, X, Z 2\r\nD, T 3\r\nL 4\r\nM, N 5\r\nR 6".Split("\r\n"))
{
var data = item.Substring(0, item.Length - 2).Replace(", ", "");
var last = item[item.Length - 1] - '0';
foreach (var item1 in data.ToCharArray())
{
map[item1] = last;
}
}
var soundex = "";
foreach (var item in textBox1.Text.Split('\n'))
{
bool first = true;
var son = "";
char last = item[0];
foreach (var c in item.ToCharArray())
{
if (first)
{
son += c;
first = false;
continue;
}
if (map.ContainsKey(c) && (!map.ContainsKey(last) || map[last] != map[c]))
{
son += map[c];
}
last = c;
}
son += "0000000000";
son = son.Substring(0, 4);
soundex += son+"\r\n";
}
textBox2.Text = soundex;
}
}
}
Last updated