Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > вывод массива


Автор: spbsmile 8.7.2011, 14:41
Здравствуйте!

хочу записать массив и вывести его в консоле
Код

public class massiv {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    String sarr[] = {"ccc","ddd","bbb","ddd","ddd","aaa"};
    System.out.println(sarr);
    
    }

}



объясните , что я делаю не так. пожалуйста.
вывод моей незаурядной программы таков: [Ljava.lang.String;@42e816

Автор: fclmfan 8.7.2011, 14:51
ну вот... надо же к элементам по индексу обращаться типа: sarr[0] или sarr[1]

Автор: spbsmile 8.7.2011, 14:58
Да , спасибо!
Код


public class massiv {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    String sarr[] = {"ccc","ddd","bbb","ddd","ddd","aaa"};
    System.out.println(sarr[0]);
    
    }

}

а как сделать так , чтобы все элементы массива выводились?

Автор: fclmfan 8.7.2011, 15:00
циклы изучай... smile 

Автор: spbsmile 8.7.2011, 15:10
Код

public class massiv {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    String sarr[] = {"ccc","ddd","bbb","ddd","ddd","aaa"};
    for (int inn = 0; inn < sarr.length; inn++)
    System.out.println(sarr[0]);
    System.out.println( "sarr[" + inn + "] = "+ sarr[inn]);
    
    }

}


на 11 строчку ругается(
взял из 
Код

char[] charArr = {'S', 'B', 'P'};
for(int inn = 0; inn < charArr.length; inn++)
{
    System.out.println("charArr[" + inn + "] = " + charArr[inn]);
}




Автор: fclmfan 8.7.2011, 15:28
фигурные скобки забыл у цикла. перенная inn объявлена в цикле и видится только в нём, поэтому и ошибка, что переменная не объявлена. ещё почитай как правильно классы в Java называть и вообще переменные в программировании...

Автор: spbsmile 8.7.2011, 15:31
Спасибо fclmfan!)


Автор: Skipy 8.7.2011, 16:09
Цитата(spbsmile @ 8.7.2011,  14:41)
Здравствуйте!
хочу записать массив и вывести его в консоле

объясните , что я делаю не так. пожалуйста.
вывод моей незаурядной программы таков: [Ljava.lang.String;@42e816

Всё правильно, у любого объекта по умолчанию выводится его тип ([Ljava.lang.String) и hashcode.

Код
public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }


У кого-то toString переопределен. У массива - нет.

P.S. http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html#toString(java.lang.Object[])

Автор: Temdegon 8.7.2011, 16:46
http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html#toString%28java.lang.Object%5B
Код

System.out.println(java.util.Arrays.toString(sarr));

 smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)