Frage zu Java, Konsolenausgabe?
Hi, ich habe hier einen Code geschrieben, nur weiß ich leider nicht, wieso die Speicheradresse auf der Konsole ausgegeben wird.
Was muss ich verändern, damit der geänderte Array in der Konsole ausgegeben wird? :)
Vielen Dank im Vorraus
smokiedesperado
5 Antworten
Damit ein Objekt in der Konsole für Menschen lesbar ausgegeben wird, muss man eine Methode namens toString() überschreiben. Macht man das nicht, so wie in deinem Fall, dann wird so eine mysteriöse Zahl ausgespuckt.
Mehr dazu und Lösungen zu deiner Frage findest du beipielsweise hier: https://stackoverflow.com/questions/409784/whats-the-simplest-way-to-print-a-java-array
In Java, arrays don't override toString(), so if you try to print one directly, you get the className + '@' + the hex of the hashCode of the array, as defined by Object.toString().
Das musst du genau so machen, wie du auch die Werte veränderst: Mit einer Schleife über den Inhalt des Arrays. Sonst gibt er dir den "Namen" des Arrays aus und das ist eben die Speicheradresse, an der das Array steht.
So etwas in der Richtung:
for(int value : nums)
System.out.println(value + ", ");
Ich verstehe deine frage nicht ganz aber um den inhalt auszugeben kannst du glaube ich
nums.toString(); verwenden oder
for(int i=0;i<nums.length();i++){
System.out.println(nums[i]);
}
Versuch mal `System.out.println(Array.toString(shiftLeft(nums));`
Es gibt dafür in der Arrays Klasse eine toString() Methode:
System.out.println(Arrays.toString(shiftLeft(nums));
Dankeee :)