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);
 
        }
 
       
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы