2014-02-06 3 views
-2

Я пытаюсь напечатать массив из семи строк, и я использую метод get, чтобы вернуть их в мин до печати, но всякий раз, когда я запускаю его, на консоли появляется случайная тарабарщина: [Ljava.lang.String; @ 6d6de4e1Java: как распечатать весь массив строк?

Вот мой метод прибудет

String[] getStuff(){ 
    return stuff; 
} 

а вот метод печати из основного класса:

System.out.println(trex.getStuff()); 

массив полностью действует и полный строк, поэтому я не знаю, что это за ошибка.

+0

Это не ошибка. – sheltem

+0

Попробуйте преобразовать этот массив в список, а затем распечатать список, используя метод toString(). Используйте Arrays.asList (trex.getStuff()) для преобразования –

+0

Вы печатаете объект, вам нужно пройти через массив и распечатать каждый объект по отдельности. – ltalhouarne

ответ

1

Вы печатаете ссылку на семь строк, а не 7 строк. Чтобы распечатать строки или использовать для цикла

for (String str : array) { 
    System.out.println(str); 
} 

или использовать статический метод Array, Arrays.toString(array);

0

Вы можете использовать статический вспомогательный метод Arrays.toString() следующим образом:

System.out.println(java.util.Arrays.toString(trex.getStuff())); 
2

Вы хотите напечатайте строковые значения внутренних объектов, а не строковое значение массива. К счастью, Java имеет встроенную команду для этого: Arrays.deepToString()

Так что ваш код печати должен быть:

System.out.println(Arrays.deepToString(trex.getStuff())); 
+0

Я не знаю, хотите ли вы запятые. Я думаю, что 'Arrays.deepToString()' добавляет "," для каждого элемента. Это может быть нежелательно для вашего приложения. –

0

Вы пытаетесь напечатать list.

Вместо этого попробуйте выполнить перебор по каждому element в списке через цикл for.

for(String str : trex.getStuff()) System.out.println(str); 
0

Вы всегда можете использовать Arrays.toString(String[]). Импортировать java.util.Arrays;

В противном случае вы можете перебирать возвращаемый массив. То, что вы видите, это адрес памяти, где начинается массив, а не его элементы.

0

вам нужно сделать цикл for и распечатать каждый элемент в массиве. Например:

String[] arr = trex.getStuff(); 
    for (int i=0; i<arr.length; i++) { 
     System.out.println(arr[i]); 
    } 
Смежные вопросы