Пожалуйста,помогите!!!!!!!!!!!!!!!!!!!!!!!!!! Си Шарп. дана строка в которой содержится осмысленное текстовоесообщение .слова сообщения разделяются пробелами и знаками препинания.Найти максимальное целое число,встречающееся в сообщении

Ответы

Ответ дал: Aillianna
0

using System;

using System.Text.RegularExpressions;


internal class Program

{

private static void Main()

{

var test_lines = new[]

{

"Я сегодня съела 2 булочки, 7 сосисок и выпила 3 чашки кофе.",

"Старший брат родился в 1990 году, а младший - в 2000г.",

"Мне нравится книга '100 лет одиночества'"

};


foreach (var test_line in test_lines)

{

Console.WriteLine(test_line);

Console.WriteLine("Самое большое число в строке {0} или {1}", FindMaxNumber(test_line), FindMaxNumberWithRegex(test_line));

}


Console.WriteLine();


Console.WriteLine("Введите строку");

var line = Console.ReadLine();

Console.WriteLine("Самое большое число в строке {0} или {1}", FindMaxNumber(line), FindMaxNumberWithRegex(line));

Console.ReadKey();

}


private static int FindMaxNumberWithRegex(string line)

{

var matches = Regex.Matches(line, @"[0-9]+"); //находим все вхождения цифр в строку, не зависимо от того часть это слова или нет

if (matches.Count < 1) return -1;


var max = -1; //предполагаем что ищем лишь положительные числа


foreach (Match match in matches)

{

var num = int.Parse(match.Value); //переводим строку в число, то что это число мы уже знаем

max = Math.Max(max, num);

}

return max;

}


private static int FindMaxNumber(string line)

{

var words = line.Split(new[] { ' ', ',', '.', '-', ':' }, StringSplitOptions.RemoveEmptyEntries);//разбивает строку на массив строк

var max = -1; //предполагаем что ищем лишь положительные числа


foreach (var word in words)

{

if (int.TryParse(word, out var num) && num > max) //если слово есть число и оно больше максимума

{

max = num;

}

}

return max;

}

}


Вас заинтересует