.NET 2.x Преобразование текста из переменной string в char массив - C#
Формулировка задачи:
Я наверное плохо еще разбираюсь в массивах но мне кажется что для моей задачи надо использовать "рваный" массив. Сей час объясню задачу.
Дана переменная
в ней различные предложения. Для примеру такое: "На право вниз, затем вперед. Ты куда? Остановись немедленно! Не остановился и домой пошел" (грамматика и смысл не имеют значения).
Мне надо по каждому символу перебрать текст циклом for, например. Это я сделал:
Далее мне надо заносить каждый символ в четырех мерный массив.
n1 - символизирует количество предложений
n2 - символизирует количество подпредложений в каждом предложении
n3 - символизирует количество слов в в каждом подпредложении
n3 - символизирует количество символов в каждом слове
как мне создать такой массив?
я пробовал так:
но не вышло.
Еще раз, я наверное плохо разбираюсь в массивах. помогите новичку.
P.S.: на то что знаки препинания и пробелы записываются первые символы отдельного слова и многие другие недоработки внимания не обращать, это временно. мне бы начало с массивом разобраться.
Листинг программы
- string text;
Листинг программы
- for (int i1 = 0; i1 < text.Length; i1 += 1) // проверка всех символов
- {
- }
Листинг программы
- if (text[i1] != ' ' && text[i1] != ',' && text[i1] != '.' && text[i1] != '!' && text[i1] != '?')
- {
- // то же предложение
- // то же подпредложение
- // то же слово
- n4++; // конец первой буквы, непеход на вторую
- }
- if (text[i1] == ' ')
- {
- // то же предложение
- // то же подпредложение
- n3++; // конец первого слова, непеход на второе
- n4 = 1;
- }
- if (text[i1] == ',')
- {
- // то же предложение
- n2++; // конец первого подпредложения, непеход на второе
- n3 = 1;
- n4 = 1;
- }
- if (text[i1] == '.' || text[i1] == '!' || text[i1] == '?')
- {
- n1++; // конец первого подпредложения, непеход на второе
- n2 = 1;
- n3 = 1;
- n4 = 1;
- }
Листинг программы
- int n1 = 1;
- int n2 = 1;
- int n3 = 1;
- int n4 = 1;
- for (int i1 = 0; i1 < text.Length; i1 += 1) // проверка всех символов
- {
- char[, , ,] text00 = new char[n1, n2, n3, n4];
- text00[n1, n2, n3, n4] = text[i1];
- if (text[i1] != ' ' && text[i1] != ',' && text[i1] != '.' && text[i1] != '!' && text[i1] != '?')
- {
- // то же предложение
- // то же подпредложение
- // то же слово
- n4++; // конец первой буквы, непеход на вторую
- }
- if (text[i1] == ' ')
- {
- // то же предложение
- // то же подпредложение
- n3++; // конец первого слова, непеход на второе
- n4 = 1;
- }
- if (text[i1] == ',')
- {
- // то же предложение
- n2++; // конец первого подпредложения, непеход на второе
- n3 = 1;
- n4 = 1;
- }
- if (text[i1] == '.' || text[i1] == '!' || text[i1] == '?')
- {
- n1++; // конец первого подпредложения, непеход на второе
- n2 = 1;
- n3 = 1;
- n4 = 1;
- }
- }
Решение задачи: «.NET 2.x Преобразование текста из переменной string в char массив»
textual
Листинг программы
- string text = "На право вниз, затем вперед. Ты куда? Остановись немедленно! Не остановился и домой пошел";
- System.Text.RegularExpressions.Regex sentenceRegEx = new System.Text.RegularExpressions.Regex(@"[.!?]");
- //тут хранятся все предложения
- string[] sentences = sentenceRegEx.Split(text);
- char[][][][] text00 = new char[sentences.Length][][][];
- for (int i = 0; i != sentences.Length; i++)
- {
- //тут хранятся все подпредложения
- string[] subSentences = sentences[i].Trim().Split(',');
- text00[i] = new char[subSentences.Length][][];
- for (int ii = 0; ii != subSentences.Length; ii++)
- {
- //тут хранятся все слова
- string[] words = subSentences[ii].Trim().Split(' ');
- text00[i][ii] = new char[words.Length][];
- for (int iii = 0; iii != words.Length; iii++)
- {
- text00[i][ii][iii] = words[iii].ToCharArray();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д