Хорошо, так что у меня проблемы. У меня есть форма с тремя текстовыми полями и кнопкой, а в первом текстовом поле (textBox1) пользователь вводит предложение. В следующем текстовом поле (textBox3) пользователь вводит слово. Затем пользователь нажимает кнопку, а третий текстовый блок (textBox2) проверяет, соответствует ли введенное слово слову в предложении. Я не могу использовать какие-либо «ярлыки», я могу только проделать длинный путь (нет .Compare или что-то в этом роде). Вот то, что я до сих пор:C# Нужна помощь Поиск совпадающего слова во входном предложении
private void button1_Click(object sender, EventArgs e)
{
string inSentence = textBox1.Text.ToUpper();
string txtB2 = textBox3.Text.ToUpper();
string[] inWord;
inWord = inSentence.Split(' ');
int wordCount = inWord.Length;
for (int i = 0; i < wordCount; i++)
{
if (txtB2 == inWord[i])
{
textBox2.Text = "Yes";
}
else
textBox2.Text = "No";
}
}
Проблема у меня в том, что, скажем, если я типа «привет это я» в первом поле, единственное слово, которое будет соответствовать это «я». Он соответствует только последнему слову. Это не соответствует всему.
Опять же, я могу только сделать это примерно так. Я просто хотел бы знать, где я ошибаюсь, и почему. Если кто-то может мне помочь, это было бы очень признательно.
Я также попытался использовать этот
foreach (string n in inWord)
{
textBox2.Text = inWord + " ";
for (int i = 0; i < wordCount; i++)
{
if (txtB2 == n)
{
textBox2.Text = "Yes " + n;
}
else
textBox2.Text = "No " + n;
}
}
И я получаю такую же проблему (я добавил «N» на вывод текста, чтобы проверить, какое слово будет, и оно всегда на «ME» когда я набираю «привет его меня»).
Почему бы не использовать тестирование вашего предложения против регулярного выражения, например: «[^ \ s] word [$ \ s]» – Niclas
Это, вероятно, домашнее задание, если бы мне пришлось угадать. Не уверен, почему вы опубликовали этот комментарий против моего ответа, так как я добавил отказ от ответа на ваш конкретный вопрос. –
Извините. Виноват. Комментировал первый пост. :) – Niclas