Найти и сохранить в строке те слова последовательности, которые отличны от первого слова - C# (181869)

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

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

помогите плиз, никак не получается Дана строка. Словом текста считается любая последовательность букв латинского алфавита; между соседними словами - не менее одного пробела, за последним словом - точка. Найти и сохранить в строке те слова последовательности, которые отличны от первого слова и удовлетворяют следующему свойству: слово совпадает с конечным отрезком латинского алфавита (z, yz, xyz,...). Все остальные слова удалить
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
 
namespace ConsoleApplication7 
{ 
class Program 
{ 
static void main(string stroka) 
{ 
stroka = stroka.Trim(); // убираем пробелы в начале и конце строки 
stroka = stroka.ToLower(); 
 
} 
static string firstWordCompare(string[] N) 
{ 
string stroka = N[0]; 
for (int i = 1; i < N.Length; i++) // организуем цикл для перебора элементов строки 
{ 
if (N[0] == N[i]) 
{ 
N[i] = ""; 
} 
else stroka = stroka + " " + N[i]; 
} 
return stroka; 
} 
static string allWordCompare(string[] N) // задаем строковую функцию с параметром для преобразования строки 
{ 
string stoka = ""; 
for (int i = 0; i < N.Length; i++) // организуем цикл для перебора элементов строки 
{ 
char[] letter = N[i].ToCharArray(); 
if(N[i]!="") 
{ 
if (letter[letter.Length-1] == 'z') 
{ stoka += N[i]+ " "; } 
 
} 
} 
return stoka; 
 
} 
static void Main(string[] args) 
{ 
for (int i=65;i<=90;i++) 
{ 
Console.WriteLine((char)i); 
 
} 
Console.WriteLine("Введите строку"); 
string stroka; 
stroka = Console.ReadLine(); 
main(stroka); 
string[] N = stroka.Split(' '); 
stroka = firstWordCompare(N); 
stroka = allWordCompare(N); 
Console.WriteLine(stroka); 
Console.ReadKey(); 
} 
} 
}

Решение задачи: «Найти и сохранить в строке те слова последовательности, которые отличны от первого слова»

textual
Листинг программы
using System;
using System.Text.RegularExpressions;
 
namespace ConsoleApplication7 {
 
    class Program {
 
        static void Main( string[] args ) {
            Console.WriteLine( "Введите строку" );
            var result = GetValidString( Console.ReadLine() );
            Console.WriteLine( "Результат: \n{0}", result );
            Console.ReadKey();
        }
 
        static string GetValidString( string input ) {
            input = input.Trim().ToLower();
            var output = "";
 
            // заменяем 2 и больше пробелов со строки на 1, если нужно
            //input = Regex.Replace( input, " {2,}", "" );
 
            // нашли все слова
            var words = Regex.Matches( input, "\\w+", RegexOptions.IgnoreCase );
            if( words.Count > 1 ) {
                var firstWord = words[ 0 ].Value;
                for( int i = 1; i < words.Count; i++ ) {
                    if( words[ 0 ].Value != words[ i ].Value && Regex.IsMatch( words[ i ].Value, "^(z|yz|xyz)$", RegexOptions.IgnoreCase ) ) {
                        output += words[ i ] + " ";
                    }
                }
                return output;
            } else {
                Console.WriteLine( "Нужно ввести больше 1 слова" );
                return "";
            }
        }
 
 
    }
 
}

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


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

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

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