.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();
}
}
}