den Inhalt eines Arrays umdrehen

1207

Aktives Mitglied
Hallo,
ich habe bereits eine Methode implementiert, die mir ein Array von char zurückliefert:

Java:
static char[] createCharArrayWithNames() {
	 
	    char[] name = new char[] {'C','i','n','j','a',';','S','a','v','a','n','a','h'};
	    return name;
	    }

nun soll ich in einer neuen Methode den Inhalt dieses Arrays umdrehen, ich habe da auch schon was zu geschrieben, aber leider zeigt mir meine Konsole immer 2 Fehler an und ich weiss nicht warum das Fehler sein sollen :(
Aber das hier ist meine Methode zum umdrehen:

Java:
static char[] reverse(char[] chars) {
	 
	     int m = chars.length-1;
		 char test = chars[0];
		 
		 for( int i=0; i < chars.length/2; i++)
		 
		    test = chars[i];
            chars[i] = chars[m];            //das ist meine Zeile 111
            chars[m] = test;
            m--;  

     return chars;
}

und das steht in meiner main-Methode:
Java:
public static void main(String[] args) {
      System.out.println(createCharArrayWithNames());
	  
	  System.out.println("reverse:" + reverse( name ));
	  
	  }
und das sind die Fehler die mir gesagt werden:
C:\Users\C_I_N_J_A\Desktop\blatt5.java:111: error: cannot find symbol
chars = chars[m];
^
symbol: variable i
location: class blatt5
C:\Users\C_I_N_J_A\Desktop\blatt5.java:155: error: cannot find symbol
System.out.println("reverse:" + reverse( name ));
^
symbol: variable name
location: class blatt5
2 errors
<<< Process finished. (Exit code 1)
================ READY ================

Also wenn ich das richtig verstehe, sagt der, dass ich keine variable i in der Zeile 111 habe, aber ich habe die doch erst in dem for-Schleifen Kopf bestimmt? Das verstehe ich nicht
 
Zuletzt bearbeitet:

rme

Top Contributor
Hallo :)

Du bist ja heute spezial-fleißig, so viele Aufgaben auf einmal zu machen.. :D Hoffentlich hast du Spaß daran und quälst dich nicht nur hindurch.

Das Problem ist schnell behoben: So Anweisungen, die den Kontrollfluss des Programms regeln (if, while, for...), können nur eine Anweisung ausführen. Die Zeile, über die sich der Compiler beschwert, ist für den Compiler eine neue Anweisung, weshalb er "i" nicht mehr kennt, da das nur in der Anweisung der Schleife gültig war.

Abhilfe: Mit geschweiften Klammern kann man aus mehreren Anweisungen einen Anweisungsblock machen, der mehrere Anweisungen zu einer gruppiert. Also so:
Java:
for(...) {
  anweisung_1;
  ...
  anweisung_n;
}

Man sollte sich angewöhnen, diese Klammern immer zu setzen. Also auch, wenn man tatsächlich nur eine Anweisung braucht. Denn wenn man später doch mal mehrere benötigt und sie ergänzt, vergisst man die Klammern und es gibt Fehler.
 

1207

Aktives Mitglied
Ja, die Zettelabgabe rückt immer näher... :D

Also ich habe jetzt die Klammern um die Schleife gesetzt und juhu er kennt das i !
Aber das Array umdrehen will er immernoch nicht :(

static char[] reverse(char[] chars) dieses char[] chars sagt mir doch, dass ich dem ein Array von chars geben muss, was ich zumindest glaube zu tun, mache ich das doch in meiner main-Methode, da name ein char Array ist und bsp ja auch, aber warum gibt der mir dann immernoch den Fehler aus?

Java:
public static void main(String[] args) {
      System.out.println(createCharArrayWithNames());
	  
	  char[] bsp = new char[] {'H', 'a', 'l', 'l', 'o'};
	  System.out.println("reverse:" + reverse( bsp ));
	  System.out.println("reverse:" + reverse( name ));
	  
	  }

Das ist der Fehler:
C:\Users\C_I_N_J_A\Desktop\blatt5.java:150: error: cannot find symbol
System.out.println("reverse:" + reverse( name ));
^
symbol: variable name
location: class blatt5
1 error
<<< Process finished. (Exit code 1)
 

rme

Top Contributor
Name ist kein char-Array, bsp schon. Wo legst du Name denn an? Das, was du innerhalb von createCharArrayWithNames anlegst, ist nach außen nicht sichtbar. Das hat man so gemacht, weil es sonst ja ein großes Chaos wäre, wenn alle Variablen überall sichtbar wären :)

Aber da die Methode das angelegte Array zurückgibst, könntest du es dir ja abspeichern, statt es nur auszugeben. So, wie du es bei der Aufgabe mit dem float-Array auch gemacht hast. Probier das mal und wenn es nicht klappt, melde dich einfach nochmal.. :)
 

1207

Aktives Mitglied
So das hab ich jetzt gemacht aber es gibt nur so komische willkürliche Zeichen aus :'(

Java:
public static void main(String[] args) {
     char[] name = createCharArrayWithNames();
	     for(int i=0; i < name.length; i++) {
		 System.out.println(name[i]);
		 }
	  
	  char[] bsp = new char[] {'H', 'a', 'l', 'l', 'o'};
	  System.out.println("reverse:" + reverse( bsp ));
	  System.out.println("reverse:" + reverse( name ));
	  
	  }

Was ist denn jetzt schon wieder falsch, dass nur das raus kommt:

reverse:[C@723d7c
reverse:[C@22c95b
 

rme

Top Contributor
Es kompiliert und gibt keine Exception zur Laufzeit, das ist doch schonmal ein gutes Zeichen :) Das Problem ist genau wie bei dem float-Array gestern: Du kannst Arrays nicht ohne Weiteres mit System.out.println() anzeigen, sondern musst (da ihr noch keine imports verwenden dürft) eine Schleife erstellen, die den Inhalt ausgibt. Also den Rückgabewert von reverse() abspeichern und dann ausgeben, genau wie bei den floats :)

Du könntest übrigens print statt println verwenden, damit die Zeichen dann alle in der gleichen Zeile landen.
 

1207

Aktives Mitglied
och das mit den schleifen in der main-Methode ist komisch

Java:
char[] name = createCharArrayWithNames();
	     for(int i=0; i < name.length; i++) {
		 System.out.print(name[i]);
		 }
	  
	  char[] bsp = new char[] {'H', 'a', 'l', 'l', 'o'};
	  
	  char[] wert = reverse( bsp );
	     for(int i=0; i < bsp.length; i++) {
		 System.out.print("reverse:" + reverse( bsp ));}
	  
	  char[] namen = reverse( bsp );
	     for(int i=0; i < name.length; i++) {
		 System.out.print("reverse:" + reverse( name ));}

und dann kommt sowas bei raus :(
Cinja;Savanahreverse:[C@19efb05reverse:[C@19efb05reverse:[C@19efb05reverse:[C@19efb05reverse:[C@19efb05reverse:[C@723d7creverse:[C@723d7creverse:[C@723d7creverse:[C@723d7creverse:[C@723d7creverse:[C@723d7creverse:[C@723d7creverse:[C@723d7crev
 

rme

Top Contributor
Ich glaube, du hast heute schon ein bisschen zu viel Java gemacht ;) Das ist normal, dass man irgendwann übersättigt ist und es immer schwieriger wird, dann Konzentration zu finden.

Deine Schleife besteht aus der gleichen Anweisung, die du vorher hattest: Der Versuch, das ganze Array auszugeben. Schau dir nochmal deine Lösung für die Aufgabe mit dem Anlegen des float-Arrays an. Die Schleife darf reverse gar nicht mehr aufrufen, das hast du vor der Schleife ja schon getan :) Du hast beim 1. Teil das Ergebnis in "wert" abgelegt, beim 2. Teil in "namen". Deshalb muss die Schleife einfach wert bzw. namen ausgeben.
 

eMmiE

Bekanntes Mitglied
Hi,
wenn dir das Programm bei Sysout´s sowas ausgibt, wie [@986149786, dann ist das der Pfad, den der PC nutzt um mithilfe von Java an die Datei, die man ja irgendwo auf der Festplatte oder dem RAM speichern muss, zu finden.

Das passiert meistens, wenn du so was wie Felder hast.
Bei primitiven Datentypen, wie int, long, u.Ä. hat er eine Methode toString() in der Klasse drin, wodurch dann der Wert ausgegeben wird und nicht der Pfad.

In deinem Fall ist es sicher hilfreich, sich eine Methode toString(char[] in) zu schreiben (siehe Spoiler)

Code:
public String toString(char[] in) {
  String rück = "[";
  for (int i = 0;i < in.length;i += 1) {
    rück += in[i]+",";
  }
  rück += "]";
  return rück;
}

Diese Methode gibt dir jetzt einen String zurück,der den Array repräsentiert.
 

1207

Aktives Mitglied
Juhu, ich habe es endlich auch mal geschafft :D

Java:
char[] name = createCharArrayWithNames();
	     for(int i=0; i < name.length; i++) {
		 System.out.print(name[i]);
		 }
	 
	 char[] namen = reverse( name );
	     for(int i=0; i < name.length; i++) {
		 System.out.print( namen[i] );}
	  
	  char[] bsp = new char[] {'H', 'a', 'l', 'l', 'o'};
	  
	  char[] wert = reverse( bsp );
	     for(int i=0; i < bsp.length; i++) {
		 System.out.print( wert[i] );}

Vielen Dank für die Hilfe!!!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
J Inhalt eines Arrays vergleichen? Java Basics - Anfänger-Themen 8
M Inhalt eines Arrays Java Basics - Anfänger-Themen 13
N den inhalt eines array per funktion ausgeben Java Basics - Anfänger-Themen 8
karlmasutra OOP Inhalt eines Array ausgeben lassen Java Basics - Anfänger-Themen 8
Silvascus Inhalt eines externen Textdokuments an einen String übergeben Java Basics - Anfänger-Themen 2
M Inhalt eines Strings um eins hochzählen Java Basics - Anfänger-Themen 19
S Inhalt eines Vektors ausgeben Java Basics - Anfänger-Themen 2
C Inhalt eines Strings in JLabel ausgeben? Java Basics - Anfänger-Themen 21
K Inhalt eines Elements aus dem Objekt Array auslesen Java Basics - Anfänger-Themen 9
Guybrush Threepwood Inhalt eines Strings für cast verwenden Java Basics - Anfänger-Themen 6
S Ausführen von dem Inhalt eines Strings Java Basics - Anfänger-Themen 16
D Inhalt eines Dialogfeldes wird nicht gleich angezeigt? Java Basics - Anfänger-Themen 6
F Inhalt eines Ordners anzeigen lassen Java Basics - Anfänger-Themen 8
J Stringname aus Inhalt eines String erzeugen Java Basics - Anfänger-Themen 12
L Inhalt eines Textfeldes bekommen Java Basics - Anfänger-Themen 3
S spezifischer inhalt eines strings Java Basics - Anfänger-Themen 2
G Inhalt eines Objektes in ArrayList Java Basics - Anfänger-Themen 3
G Inhalt eines Frame in anderen Frame übertragen ? Java Basics - Anfänger-Themen 2
V Problem beim Inhalt eines Verzeichnisses anzeigen Java Basics - Anfänger-Themen 6
U Textausgabe für Inhalt eines Vectors! Java Basics - Anfänger-Themen 4
A Inhalt eines Vectors rückwärts ausgeben Java Basics - Anfänger-Themen 14
A Inhalt eines Textfeldes Java Basics - Anfänger-Themen 12
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
javapingu Jeglichen Inhalt einer Textdatei nach Zeile n löschen Java Basics - Anfänger-Themen 8
K Ein Objekt Auto kennt den Inhalt seines links und rechtsstehenden Autos, wie soll man das ermöglichen Java Basics - Anfänger-Themen 2
Ameise04 Variablen Inhalt einer Variable im Code verwenden? Java Basics - Anfänger-Themen 9
I String ersetzen, der Inhalt enthält Java Basics - Anfänger-Themen 4
T Inhalt aus TextField in Attribut einer Instanz schreiben Java Basics - Anfänger-Themen 5
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
F Erstellen zweier Objekte mit dem selben Inhalt Java Basics - Anfänger-Themen 1
X TextField-Inhalt mit Button in .txt-Datei speichern Java Basics - Anfänger-Themen 16
J Datentypen CSV to DB Leere Zellen in CSV mit Inhalt? Java Basics - Anfänger-Themen 11
H Universitätsaufgabe String inhalt Kontrollieren Java Basics - Anfänger-Themen 9
C Vector-Inhalt in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 6
D Ich suche nach einer Möglickeit den Webseiten Inhalt per Java zu analysieren Automatisch Java Basics - Anfänger-Themen 3
L Namensliste mit Array zeigt nicht den gewünschten Inhalt Java Basics - Anfänger-Themen 12
F Variablen JTextField-Inhalt kann nicht mit String abgeglichen werden Java Basics - Anfänger-Themen 2
Zeekay Development Methoden Methoden Inhalt Abhängig vom Objekt? Java Basics - Anfänger-Themen 9
B BufferedReader gibt Datei-Inhalt doppelt aus Java Basics - Anfänger-Themen 3
M Ordner mit Inhalt löschen Java Basics - Anfänger-Themen 7
R getrennte Objekte aus Klasse erstellen : warum Inhalt dann gleich ? Java Basics - Anfänger-Themen 2
F Inhalt einer Variable auswerten, die sich immer wieder ändert Java Basics - Anfänger-Themen 1
K Variablenname soll der Inhalt vom String sein Java Basics - Anfänger-Themen 2
O Zip-File Inhalt einlesen Java Basics - Anfänger-Themen 3
S Inhalt aus anderen Klassen verwenden Java Basics - Anfänger-Themen 1
H Input/Output Inhalt einer GUI in Textdatei speichern Java Basics - Anfänger-Themen 1
M Wie gebe ich den Inhalt aus? Java Basics - Anfänger-Themen 17
K Inhalt von einer csv-Datei abspeichern Java Basics - Anfänger-Themen 3
P Seite auf Inhalt prüfen Java Basics - Anfänger-Themen 2
U Inhalt von JTextfield an andere Klasse weitergeben Java Basics - Anfänger-Themen 13
Uzi21 jTable / Inhalt speichern Java Basics - Anfänger-Themen 2
T CSV auf Inhalt und Zeilen überprüfen Java Basics - Anfänger-Themen 2
S Inhalt von JPanel erst nach Resize sichtbar Java Basics - Anfänger-Themen 2
T Aufgerufene Methode Inhalt der übergebenen Referenz Java Basics - Anfänger-Themen 5
A Leere Datei wird ohne Inhalt geschrieben, obwohl Inhalt geschrieben wurde. Java Basics - Anfänger-Themen 4
K Inhalt in den Zwischenspeicher legen Java Basics - Anfänger-Themen 2
kaoZ Input/Output Verzeichnis Inhalt in combobox ausgeben Java Basics - Anfänger-Themen 8
G JTable: Inhalt einer selektierten Zeile speichern Java Basics - Anfänger-Themen 2
G Inhalt einer JTextArea wird nicht dargestellt Java Basics - Anfänger-Themen 8
J Inhalt in einem Text-File finden und in ein Array schreiben Java Basics - Anfänger-Themen 5
R Inhalt vom String größer oder kleiner als Java Basics - Anfänger-Themen 16
F Erste Schritte if Inhalt Java Basics - Anfänger-Themen 7
C Erste Schritte String-INhalt in TXT ausgeben Java Basics - Anfänger-Themen 7
L Split + Zeilen einer Datei mit bestimmtem Inhalt löschen Java Basics - Anfänger-Themen 23
U OOP Array vom Typ String > Inhalt ausgeben Java Basics - Anfänger-Themen 8
M Array Inhalt kopieren Java Basics - Anfänger-Themen 3
O Container Inhalt auslesen Java Basics - Anfänger-Themen 2
M Inhalt/Wert aus einer JList ablesen Java Basics - Anfänger-Themen 5
M String auf Inhalt überprüfen Java Basics - Anfänger-Themen 11
H Mehrdimensionales Array - Inhalt auf Null überprüfen Java Basics - Anfänger-Themen 5
B Datentypen Inhalt von Objekten miteinander vergleichen Java Basics - Anfänger-Themen 2
I Mehrere ArrayLists mit einer for( : ) Schleife auf Inhalt prüfen Java Basics - Anfänger-Themen 6
R Erste Schritte Objekte mit anderen Objekten als Inhalt Java Basics - Anfänger-Themen 4
F Kopieren von Ordner sammt inhalt Java Basics - Anfänger-Themen 5
I Datei einlesen, Inhalt in MAP ablegen Java Basics - Anfänger-Themen 10
E Inhalt von Option Feldern auslesen? Java Basics - Anfänger-Themen 2
Helgon Inhalt - Aktualisierungs Problem Java Basics - Anfänger-Themen 7
T Inhalt Gridlayout wird nicht angezeigt Java Basics - Anfänger-Themen 6
O Variablen Variablen Inhalt von Webseite einlesen!? Java Basics - Anfänger-Themen 2
M String Inhalt wird überschrieben (Subklassen verwenden denselben String) Java Basics - Anfänger-Themen 13
Gossi Input/Output Datei Lesen, inhalt abfragen, speichern Java Basics - Anfänger-Themen 5
B jar Inhalt anzeigen Java Basics - Anfänger-Themen 5
H Input/Output Inhalt einer TextArea in Hex umwandeln Java Basics - Anfänger-Themen 10
D Textfile lesen/schreiben abhängig vom inhalt Java Basics - Anfänger-Themen 6
X Collections Inhalt von zwei Collections prüfen Java Basics - Anfänger-Themen 4
D jTable befüllen mit dynamischem Inhalt Java Basics - Anfänger-Themen 11
M Inhalt Textfeld prüfen Java Basics - Anfänger-Themen 4
H Java-Fenster ohne Inhalt Java Basics - Anfänger-Themen 2
D Inhalt der Spalten einer Tabelle addieren Java Basics - Anfänger-Themen 4
B Datentypen Inhalt zum Iterator wieder aufrufen? Java Basics - Anfänger-Themen 10
E Inhalt zwischen zwei String auslesen? Java Basics - Anfänger-Themen 8
F String-Inhalt als Datatype-Name Java Basics - Anfänger-Themen 5
D Inhalt einer Liste auf nur ein Wert überprüfen ohne die Liste komplett zu interieren Java Basics - Anfänger-Themen 6
M Tabelle mit immer sortiertem Inhalt Java Basics - Anfänger-Themen 5
S JFileChooser - Dateinamen vorschlagen/Inhalt der Ausgabe prüfen Java Basics - Anfänger-Themen 3
J JList Inhalt nach JButton Klick aktualisieren Java Basics - Anfänger-Themen 8
L Inhalt von JEditorPane löschen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben