Cтрока: Вывести самое короткое (длинное) слово в предложении - C#
Формулировка задачи:
Дана строка-предложение на русском языке.
Вывести самое короткое (длинное) слово в предложении (если таких слов несколько, то вывести первое из них
Делаю через String.Builder, не знаю в чем проблема
using System;
using System.Text;
namespace ConsoleApplication1
{
class Program
{ static void Main(string[] args)
{
Console.WriteLine(@"Дана строка-предложение на русском языке.
Вывести самое короткое (длинное) слово в предложении (если таких слов несколько, то вывести первое из них).");
StringBuilder str = new StringBuilder(Console.ReadLine());
StringBuilder[] mas = str.Split(' ');
int min = mas[0].Length;
int max = mas[0].Length;
StringBuilder ms = mas[0];
StringBuilder md = mas[0];
for (int i = 0; i < mas.Length; i++)
{
if (mas[i].Length < min)
{
min = mas[i].Length;
ms = mas[i];
}
if (mas[i].Length > max)
{
max = mas[i].Length;
md = mas[i];
}
}
Console.WriteLine("Самое короткое слово:" + ms);
Console.WriteLine("Самое длинное слово:" + md);
Console.ReadLine();
}
}
}Решение задачи: «Cтрока: Вывести самое короткое (длинное) слово в предложении»
textual
Листинг программы
using System;
using System.Linq;
using System.Text.RegularExpressions;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string str= @"Дана строка-предложение на русском языке.
Вывести самое короткое(длинное) слово в предложении(если таких слов несколько, то вывести первое из них";
var words = Regex.Matches(str, @"\w+-?\w*").Cast<Match>().Select(i=>new {i.Index,i.Value}).OrderBy(i=>i.Value.Length);
var s = words.First();
var l = words.Last();
Console.WriteLine("Самое короткое слово '{0}', его индекс {1}:",s.Value,s.Index);
Console.WriteLine("Самое длинное слово '{0}', его индекс {1}",l.Value,l.Index);
}
}
}