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