Вывод предложений из текстового файла в обратном порядке - C#

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста решить задачу! Написать программу, которая считывает из текстового файла три предложения и выводит их в обратном порядке. Что то как то пыталась:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            StreamReader sr = new StreamReader("111.txt");
            string[] text = new string[3];
            for (int i = 0; i < 3; i++)
            {
                text[i] = sr.ReadLine();
            }
            sr.Close();
            for (int i = 2; i >= 0; i--)
            {
                Console.WriteLine(text[i]);
            }
          
           /*  string text1 = File.ReadAllText("111.txt");
               
                string[] sentences = text1.Split(new char[] { '.', '!', '?' });
                foreach (string s in sentences)
                {
                    if (s.Contains("оператор"))
                        Console.WriteLine(s);*/
 
                    Console.ReadLine();
 
                }
            }
        }
}

Решение задачи: «Вывод предложений из текстового файла в обратном порядке»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
namespace ConsoleApplication2
{
    class Program
    {
        static void Main()
        {
            var text = File.ReadAllText("111.txt");
            var sentences = text.GetSentences();
            var numbers = text.GetNumbers();
            /*1 задание*/
            foreach (var sentence in sentences.Take(3).Reverse())
                Console.WriteLine(sentence);
            /*2 задание*/
            foreach (var sentence in sentences.Where(sentence => sentence.Contains("Hello")))
                Console.WriteLine(sentence);
            /*3 задание*/
            foreach (var number in numbers)
                Console.WriteLine(number);
            Console.ReadKey();
        }
    }
    static class Extensions
    {
        public static List<string> GetSentences(this string text)
        {
            if (string.IsNullOrEmpty(text))
                throw new ArgumentNullException(nameof(text));
            var matches = Regex.Matches(text, @"(\S.+?[.!?])(?=\s+|$)", RegexOptions.Compiled);
            var sentences = matches.Cast<Match>().Select(match => match.Value).ToList();
            return sentences;
        }
        public static List<double> GetNumbers(this string text)
        {
            if (string.IsNullOrEmpty(text))
                throw new ArgumentNullException(nameof(text));
            var matches = Regex.Matches(text, @"-?\d+(?:\.\d+)?", RegexOptions.Compiled);
            var numbers = matches.Cast<Match>().Select(match => double.Parse(match.Value, CultureInfo.InvariantCulture)).ToList();
            return numbers;
        }
    }
}

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


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

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

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