Это программа, которая читает в 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);
}
Проблема до сих пор является то, что конечная строка выводится в текстовое поле, но печатает только последнее слово, как он переписывает. Это университетское задание, поэтому я ищу толчок в правильном направлении, а не фактический ответ. Большое спасибо!
@ L.B, что бы не добавить пробелы в результате, хотя. – svick
Я не знаю точно, но вы пробовали пройти через цикл с помощью отладчика? Я думаю, что все, прежде чем оно будет выглядеть правильно, поэтому петля, скорее всего, ваша проблема. – sebsebmc