Найти и сохранить в строке те слова последовательности, которые отличны от первого слова - 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 "";
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д