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