2015-12-11 1 views
0

У меня есть строка и вы хотите хранить каждый символ слова в этой строке в неровном массиве без использования метода split(), всего лишь циклов. Я попробовал этот код, но он не работал, я хочу, чтобы результат будет что-то вроде этого:Сохранение строкового символа в массиве с искажениями

sepwords[0][1] = {H,e,l,l,o}; 
sepwords[0][2] = {h,o,w}; 
sepwords[0][3] = {a,r,e}; 
sepwords[0][4] = {y,o,u}; 

Кода я пытался:

for (int i = 0; i < length; i++) 
{ 
    letters[i] = text[i]; 
} 

foreach (char item in letters) 
{ 
    for (int i = 0; i < length; i++) 
    { 
     if (letters[i] != ',' || letters[i] != ';' || letters[i] != '!' || letters[i] != '?' || letters[i] != '.' || letters[i] != ' ') 
     { 
      for (int j = 0; j < length; j++) 
      { 
       sepwords[0] = new char[length]; 
       sepwords[0][j] = letters[i]; 
      } 
     } 
     else 
     { 
      continue; 
     } 
    } 

} 

ответ

0

sepwords[0] = new char[length];

Вы перезапись каждого массива новый, когда вы достигаете нового слова.

+0

, но я пытался без этой линии и получил: Необработанное исключение: System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта – Omar

+0

Ну. Да. Потому что вы ничего не инициализировали. Главное иметь в виду, что вы каждый раз обращаетесь к 'sepwords [0]'. Как насчет 'sepwords [1]'? – Draco18s

0

Вы можете просто сделать это ..

char[][] sepwords = new char[4][]; 
sepwords[0] = "Hello".ToCharArray(); 
sepwords[1] = "how".ToCharArray(); 
sepwords[2] = "are".ToCharArray(); 
sepwords[3] = "you".ToCharArray(); 

 Смежные вопросы

  • Нет связанных вопросов^_^