Считать файл, и вывести только те предложения, что без двузначных чисел (доработать код) - C#
Формулировка задачи:
короче пишу курсовик и в последнем задании реал не знаю как избежать такой дилеммы, в моем коде, если цифры находятся в конце предложения, то прога путается в индексах, плиз, реал не знаю уже как это поправить.
Суть задания - считать файл, и вывести только те, что без двузначных чисел (пишу здесь первый раз)
if (File.Exists("Text.txt"))
{
FileStream Text = new FileStream("Text.txt", FileMode.Open, FileAccess.Read);
StreamReader Text_Reader = new StreamReader(Text, Encoding.Default);
string line = Text_Reader.ReadLine();;
string[] str = new string[line.Length];
textBox4.Text = line;
str = line.Split('.', '!', '?');
string запасной;
for (int i = 0; i < str.Length; i++)
{
запасной = str[i];
for (int j = 0; j < запасной.Length; j++)
{
if (j == запасной.Length - 1) { textBox5.Text += " . " + str[i].ToString(); }
if (запасной[j] == '0' || запасной[j] == '1' || запасной[j] == '2' || запасной[j] == '3' || запасной[j] == '4' || запасной[j] == '5'|| запасной[j] == '6' || запасной[j] == '7' || запасной[j] == '8' || запасной[j] == '9')
{
int n = 0;
while (запасной[j + n] == '0' || запасной[j + n] == '1' || запасной[j + n] == '2' || запасной[j + n] == '3' || запасной[j + n] == '4' || запасной[j + n] == '5' || запасной[j + n] == '6' || запасной[j + n] == '7' || запасной[j + n] == '8' || запасной[j + n] == '9') { n++; }
if (n == 1 || n > 2)j = j + n;
if (n == 2) { break; }
}
}
}
Text_Reader.Close();
Text.Close();
}
else
{
MessageBox.Show("Файл Text.txt не сущствует: ");
}Решение задачи: «Считать файл, и вывести только те предложения, что без двузначных чисел (доработать код)»
textual
Листинг программы
Regex r = new Regex(@"\D\d{2}\D");
textBox5.Text = string.Join(Environment.NewLine, str.Where(t => !r.IsMatch(t)));