这是一个读取 CSV 文件的程序,将值添加到字典类,然后分析文本框中的字符串以查看是否有任何单词与字典条目匹配。它会将缩写词(LOL、ROFL 等)替换为它们的真实单词。它通过将输入的文本拆分为单个单词来匹配字符串。
public void btnanalyze_Click(object sender, EventArgs e)
{
var abbrev = new Dictionary<string, string>();
using (StreamReader reader = new StreamReader("C:/Users/Jordan Moffat/Desktop/coursework/textwords0.csv"))
{
string line;
string[] row;
while ((line = reader.ReadLine()) != null)
{
row = line.Split(',');
abbrev.Add(row[0], row[1]);
Console.WriteLine(abbrev);
}
}
string twitterinput;
twitterinput = "";
// string output;
twitterinput = txtInput.Text;
char[] delimiterChars = { ' ', ',', '.', ':', '\t' };
string text = twitterinput;
string[] words = twitterinput.Split(delimiterChars);
string merge;
foreach (string s in words)
{
if (abbrev.ContainsKey(s))
{
string value = abbrev[s];
merge = string.Join(" ", value);
}
if (!abbrev.ContainsKey(s))
{
string not = s;
merge = string.Join(" ", not);
}
MessageBox.Show(merge);
}
}
问题是如果有标点符号,程序就不会翻译这个词。我意识到我使用的字符集意味着标点符号不是问题,但也不允许我在打印时保留它。有没有办法可以忽略最后一个字符,而不是删除它,并仍然保留它以供输出?我试图将它写入一个新变量,但我也找不到这样做的方法......