Сохранение в двумерный массив значений посчитанных символов в подстроке - C#

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

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

Доброго времени суток, уважаемые! Студент просит о помощи) Присутствует задача:

Дана строка. Ориентируясь на пробелы, разбить строку на подстроки. Создать двумерный массив. Посчитать количество символов в каждой строке, сохранить информацию в массиве и упорядочить его в порядке возрастания ключей.

До момента подсчета символов в строке все шло нормально, а дальше ступор... Если есть мысли и желание, прошу помочь. То, чего натворил, прилагаю
Листинг программы
  1. using System;
  2. public class SplitTest
  3. {
  4. public static void Main()
  5. {
  6. Console.WriteLine("Введите строку ");
  7. string a = Console.ReadLine();
  8. string words = a;
  9. string[] split = words.Split(new Char[] { ' ', ',', '.', ':', '\t' });
  10. foreach (string s in split)
  11. {
  12. if (s.Trim() != "")
  13. Console.WriteLine(s);
  14. Console.ReadLine();
  15. int strLen = s.Length;
  16. Console.WriteLine("Количество символов в строке = {0}", strLen);
  17.  
  18. Console.ReadLine();
  19. }
  20. }
  21. }

Решение задачи: «Сохранение в двумерный массив значений посчитанных символов в подстроке»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace ConsoleApplication1 {
  4.  
  5.     class Program {
  6.        
  7.         static void Main() {
  8.  
  9.             Console.Write("Введите любой текст: ");
  10.             string text = Console.ReadLine(); // получаем текст
  11.             char[] splitchars = new char[] { ' ' }; // какими символами разбиваем строку
  12.             char[] trimchars = new char[] { ',', '.', '!', '?' }; // какие символы в строке обрезать
  13.             var words = text.Split( splitchars, StringSplitOptions.RemoveEmptyEntries ); // игнорируем пустые строки
  14.            
  15.             // создаём массив объектов Nx2
  16.             // 1-я размерность будет хранить строку,
  17.             // 2-я размерность будет хранить длину строки
  18.             object[,] array = new object[ words.Length, 2 ];
  19.             for( int i = 0; i < array.GetLength( 0 ); i++ ) {
  20.                 array[ i, 0 ] = words[ i ].Trim( trimchars ); // вырезаем лишние символы, типа точки, запятой
  21.                 array[ i, 1 ] = array[ i, 0 ].ToString().Length; // получаем длину строки
  22.             }
  23.  
  24.             // если слов больше, чем одно, то
  25.             if( array.GetLength( 0 ) > 1 ) {
  26.  
  27.                 // сортировка по возростанию за длинной строки:
  28.                 for( int i = 0; i < array.GetLength( 0 ) - 1; i++ ) {
  29.                     for( int j = i + 1; j < array.GetLength( 0 ); j++ ) {
  30.                         int first = ( int ) array[ i, 1 ];
  31.                         int next = ( int ) array[ j, 1 ];
  32.                         if( first > next ) {
  33.                             // меняем местами длину
  34.                             var temp = array[ i, 1 ];
  35.                             array[ i, 1 ] = array[ j, 1 ];
  36.                             array[ j, 1 ] = temp;
  37.                             // меняем местами слова
  38.                             temp = array[ i, 0 ];
  39.                             array[ i, 0 ] = array[ j, 0 ];
  40.                             array[ j, 0 ] = temp;
  41.                         }
  42.                     }
  43.                 }
  44.  
  45.             }
  46.  
  47.             // вывод на дисплей результат
  48.             Console.WriteLine( "----------------------------\nЭлемент | Длина\t| Слово\n----------------------------" );
  49.             for( int i = 0; i < array.GetLength( 0 ); i++ )
  50.                 Console.WriteLine( "{0}\t| {1}\t| {2}", i, array[ i, 1 ], array[ i, 0 ] );
  51.  
  52.             Console.WriteLine( "----------------------------" );
  53.             Console.ReadLine();
  54.         }
  55.  
  56.     }
  57.  
  58. }

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


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

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

7   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы