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;
}
}
Поделитесь своими знаниями, ответьте на вопрос: