Сохранение в двумерный массив значений посчитанных символов в подстроке - C#
Формулировка задачи:
Доброго времени суток, уважаемые! Студент просит о помощи)
Присутствует задача:
Дана строка. Ориентируясь на пробелы, разбить строку на подстроки. Создать двумерный массив. Посчитать количество символов в каждой строке, сохранить информацию в массиве и упорядочить его в порядке возрастания ключей.
До момента подсчета символов в строке все шло нормально, а дальше ступор... Если есть мысли и желание, прошу помочь. То, чего натворил, прилагаюusing System; public class SplitTest { public static void Main() { Console.WriteLine("Введите строку "); string a = Console.ReadLine(); string words = a; string[] split = words.Split(new Char[] { ' ', ',', '.', ':', '\t' }); foreach (string s in split) { if (s.Trim() != "") Console.WriteLine(s); Console.ReadLine(); int strLen = s.Length; Console.WriteLine("Количество символов в строке = {0}", strLen); Console.ReadLine(); } } }
Решение задачи: «Сохранение в двумерный массив значений посчитанных символов в подстроке»
textual
Листинг программы
using System; namespace ConsoleApplication1 { class Program { static void Main() { Console.Write("Введите любой текст: "); string text = Console.ReadLine(); // получаем текст char[] splitchars = new char[] { ' ' }; // какими символами разбиваем строку char[] trimchars = new char[] { ',', '.', '!', '?' }; // какие символы в строке обрезать var words = text.Split( splitchars, StringSplitOptions.RemoveEmptyEntries ); // игнорируем пустые строки // создаём массив объектов Nx2 // 1-я размерность будет хранить строку, // 2-я размерность будет хранить длину строки object[,] array = new object[ words.Length, 2 ]; for( int i = 0; i < array.GetLength( 0 ); i++ ) { array[ i, 0 ] = words[ i ].Trim( trimchars ); // вырезаем лишние символы, типа точки, запятой array[ i, 1 ] = array[ i, 0 ].ToString().Length; // получаем длину строки } // если слов больше, чем одно, то if( array.GetLength( 0 ) > 1 ) { // сортировка по возростанию за длинной строки: for( int i = 0; i < array.GetLength( 0 ) - 1; i++ ) { for( int j = i + 1; j < array.GetLength( 0 ); j++ ) { int first = ( int ) array[ i, 1 ]; int next = ( int ) array[ j, 1 ]; if( first > next ) { // меняем местами длину var temp = array[ i, 1 ]; array[ i, 1 ] = array[ j, 1 ]; array[ j, 1 ] = temp; // меняем местами слова temp = array[ i, 0 ]; array[ i, 0 ] = array[ j, 0 ]; array[ j, 0 ] = temp; } } } } // вывод на дисплей результат Console.WriteLine( "----------------------------\nЭлемент | Длина\t| Слово\n----------------------------" ); for( int i = 0; i < array.GetLength( 0 ); i++ ) Console.WriteLine( "{0}\t| {1}\t| {2}", i, array[ i, 1 ], array[ i, 0 ] ); Console.WriteLine( "----------------------------" ); Console.ReadLine(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д