В
Все
Х
Химия
В
Видео-ответы
А
Алгебра
Г
Геометрия
О
ОБЖ
Д
Другие предметы
У
Українська література
Р
Русский язык
Б
Беларуская мова
У
Українська мова
Э
Экономика
Ф
Физика
М
Математика
Ф
Французский язык
Г
География
И
Информатика
М
МХК
О
Окружающий мир
П
Психология
Н
Немецкий язык
О
Обществознание
П
Право
И
История
М
Музыка
Л
Литература
Қ
Қазақ тiлi
Б
Биология
А
Английский язык
идинахер89
идинахер89
11.02.2022 22:24 •  Информатика

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

Ответ:
tamila2002саша2004
tamila2002саша2004
24.07.2020 19:30

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;

}

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?