2014-12-07 2 views
-2

Я пытаюсь заполнить 2D-массив с 5 словами. Каждая строка должна быть разделена на отдельные символы и заполнять одну строку массива.Строка в char на 2D-массиве (java)

String str = "hello"; 
char[][] words = new char[10][5]; 
words[][] = str.toCharArray(); 

Моя ошибка на 3-й линии, я не знаю, как разделить строку «привет» в гольцов и заполнить только 1-й ряд 2-мерного массива

+0

[MCVE] (http://stackoverflow.com/help/mcve) пожалуйста. –

+0

Вы получаете сообщение об ошибке? Если да, то какая именно ошибка сообщается компилятором? JFC! –

+0

@ Mitsos Dim Что такое String? Это std :: string? –

ответ

1

Если вы хотите массив чтобы заполнить первую строку, просто Asign его в первом ряду:

words[0] = str.toCharArray(); 

Поскольку это создаст новый массив в массиве, вы должны изменить экземпляра words к этому:

char[][] words = new char[5][]; 
-1

Java имеет класс String. Используйте его.

Очень мало известно о том, что вы хотите с ним. Но он также имеет класс List, который я бы рекомендовал. В этом случае я бы рекомендовал реализацию ArrayList.

Теперь о проблемах, как этот код будет выглядеть сейчас?

List<String> words = new ArrayList<>(); 
words.add("hello"); 
words.add("hello2"); 
words.add("hello3"); 
words.add("hello4"); 
words.add("hello5"); 

for (String s : words) { 
    System.out.println(s); 
} 

Для вашего случая, если вы застряли в использовании массивов.

String str="hello"; 
char[][] words = new char[5][]; 
words[][] = str.toCharArray(); 

использовать что-то вдоль линии

String str = "hello"; 
char[][] words = new char[5][]; 
words[0] = str.toCharArray(); 

for (int i = 0; i < 5; i++) { 
    System.out.println(words[i]); 
} 

Однако, почему изобретать колесо снова? Однако есть случаи, которые можно прочитать по этому вопросу.

Array versus List<T>: When to use which?

+0

' char [] [] words = new char [ 255] [5]; '- почему' char [255] '? – msrd0

+0

@ msrd0 Это был всего лишь пример. Он может быть установлен на максимальную длину самого длинного слова. – Emz

+0

Зачем вы его устанавливаете? Это просто ненужное использование памяти, удалите его, как я опубликовал в своем решении – msrd0

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