Variablen Wird nicht in String Gespeichert

Voreck

Aktives Mitglied
Mein Bisheriger code ist

Java:
public class Stage1 {
    public static void Create() {
        for (int d = 0; d <= 8; d++)
            WallTile.WalltoString();
        GameField.ToString(0);
        WallTile.WalltoString();
        for (int d = 0; d <= 4; d++)
            EmptyTile.EmptytoString();
        WallTile.WalltoString();
        GameField.ToString(1);

        for (int ind1 = 0; ind1 < 2; ind1++)
            for (int ind2 = 0; ind2 < 8; ind2++)
                GameTile.ToString(GameField.field[ind1][ind2]);
        System.out.println(GameTile.Tiles);
    }
}

Java:
public class GameField {
    public static String[][]field = new String[20][20];

        public static void ToString(int durchlauf){
        String[]FieldTiles=new String[20];
        for(int ind=1;ind<GameTile.Tiles.length();ind++)
           FieldTiles[ind-1]= GameTile.Tiles.substring(ind, ind+1);
        int index;
        for(index=0;index<FieldTiles.length;index++){
            field[durchlauf][index]=FieldTiles[index];
        }
        GameTile.nextrow();
    } 
}
Java:
public class EmptyTile extends GameTile {
    public static void EmptytoString(){     
        Tiles = Tiles.concat("  ");
    }
}

Java:
public class WallTile extends GameTile {
    public static void WalltoString() {
        Tiles = Tiles.concat("#");
    }
}
und
Java:
public class GameTile {
    public static String Tiles = new String(" ");
    public static void ToString(String Symbol) {
        if(Symbol != null)
            Tiles = Tiles.concat(Symbol);
        else
        {
            Tiles = Tiles.concat("  ");
        } 
    }
    public static void nextrow(){
    Tiles=" "; 
    }
}

Es sollte
Code:
########
#      #
Rauskomme, aber es kommt nur
########
raus.
Wenn ich in den debbugger schaue sehe ich, dass bei der zweiten Reihe auf einmal der String Tiles leer ist

Sry, dass ich alles mit Fragen vollspamme aber ich komm einfach nicht weiter.
 
Zuletzt bearbeitet von einem Moderator:

Joose

Top Contributor
Ja weil du in "nextRow" auch sagst das der String auf ein einfaches Spaces gesetzt werden soll.

Zu deinen Tile Klassen: Warum heißen die Methoden jeweils anders? Warum sind die Methoden und der String "Tiles" statisch? Versuche "static" zu vermeiden, damit bereitest du dir mehr Probleme als es löst.
Und verwende auch bei einzeiligen for-Schleifen bzw. if/else-Blöcken Klammern!
 

Joose

Top Contributor
Die methoden heißen anders weilich dieser aufgabe:https://wiki.freitagsrunde.org/Javakurs/Übungsaufgaben/Doom zumindest halb folge
Aber wirklich nur halb. Wie schon gesagt vermeide "static". Und halte dich doch an die Übungsaufgaben und überschreibe die "toString" Methode der jeweiligen Klasse.
und wie kann ich den String dann leeren?
Indem du einen leeren String setzt? String emptyString = "";

Aber ansonsten ist dein Code auch etwas wirr :/ solltest dir überlegen der Übungsaufgabe nicht mehr zu folgen als bisher bzw. deinen Code nochmals zu überarbeiten.
 

Joose

Top Contributor
Mich wundert überhaupt das es angeblich funktioniert hat ;)
Weil deine Änderung nichts wirklich was ändern hätte sollen -> ob du den String nun mit Hilfe einer extra Methode auf leer setzt oder direkt ist vollkommen egal.

Cannot make a static reference to the non-static method ToString(String) from the type GameTile
Wie schon gesagt ich würde alles static einfach entfernen, ich wüsste keinen Grund warum du es brauchst. Stattdessen arbeite mit Objekten und deren Attributen.
 

Joose

Top Contributor
Dadurch das du jetzt Objekte verwendest hat jedes Tile Objekt sein eigene String Instanz ;)

Hier mal eine Version ohne "static", mit Objekten. Hält sich auch näher an die Aufgabe (überschreiben der toString Methode)
Java:
public class Stage1 {
   private GameField game = new GameField();

   public void Create() {
     // obere Wand aufbauen
     for (int d = 0; d < 8; d++) {
       game.addTile(new WallTile(), 0, d);
     }
     // linke Wand
     game.addTile(new WallTile(), 1, 0);
     // freier Raum
     for (int d = 1; d <= 6; d++) {
       game.addTile(new EmptyTile(), 1, d);
     }
     // rechte Wand
     game.addTile(new WallTile(), 1, 7);
     
     System.out.println(game);
   }
   
   public static void main(String[] args){
     Stage1 s = new Stage1();
     s.Create();
   }
}

public class GameField {
   public GameTile[][] field = new GameTile[20][20];
   
   public void addTile(GameTile tile, int xPos, int yPos) {
     // todo: check if in field
     field[xPos][yPos] = tile;
   }

   @Override
   public String toString() {
     StringBuilder result = new StringBuilder();
     for(int x = 0; x < field.length; x++) {
       for(int y = 0; < field[x].length; y++) {
         result.append(field[x][y]); // hier wird die toString Methode des jeweiligen Objektes aufgerufen
       }
       result.append("\n"); // Zeilenumbruch hinzufügen
     }
     return result.toString();
   }
}

public abstract class GameTile {
}

public class EmptyTile extends GameTile {
   @Override
   public String toString() {
     return " ";
   }
}

public class WallTile extends GameTile {
   @Override
   public String toString() {
     return "#";
   }
}
 

Voreck

Aktives Mitglied
Und der ausgabewert ist auch nicht grad besser:
Code:
########nullnullnullnullnullnullnullnullnullnullnullnull
#      #nullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
 

Voreck

Aktives Mitglied
hab jetzt das gemacht:
Java:
for(int x = 0; x < field.length; x++) {
       for(int y = 0; y < field[x].length; y++) {
          if(!(field[x][y] ==null))
          result.append(field[x][y]); // hier wird die toString Methode des jeweiligen Objektes aufgerufen
       }
       result.append("\n"); // Zeilenumbruch hinzufügen
     }
Es blinkt kurz ohne die nullen auf, verschwindet aber gleich wieder
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G String wird nach Einlesen aus Datei nicht erkannt Java Basics - Anfänger-Themen 3
T Dateiinhalt wird nicht in String eingelesen Java Basics - Anfänger-Themen 4
J Programm was üer Runtime.getRuntime gestartet wird erkennt String Parameter nicht Java Basics - Anfänger-Themen 0
E Methoden String wird in Rekursion nicht überschrieben Java Basics - Anfänger-Themen 2
Z Variablen String umdrehen, Variable wird nicht gefunden Java Basics - Anfänger-Themen 6
F String wird in Konsole nicht eingelesen Java Basics - Anfänger-Themen 19
L String wird nicht gespeichert / Probleme mit Dateinamen Java Basics - Anfänger-Themen 9
M Datentypen Ergebniss- Double to String- wird nicht angezeigt Java Basics - Anfänger-Themen 13
N Variablen String wird nicht übergeben Java Basics - Anfänger-Themen 139
B Warum wird String im Code nicht als Schlüsselwort markiert? Java Basics - Anfänger-Themen 11
M String wird nicht korrekt ausgelesen. Java Basics - Anfänger-Themen 11
F String wird nicht aktualisiert Java Basics - Anfänger-Themen 2
X String wird nicht richtig ersetzt! Java Basics - Anfänger-Themen 2
F String equals null wird nicht angenommen. Java Basics - Anfänger-Themen 24
K Prob mit java.util.regex.matches-String wird nicht erkannt? Java Basics - Anfänger-Themen 9
W String wird nicht dargestellt Java Basics - Anfänger-Themen 7
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
K REGEX - Rechnungsbetrag wird nicht richtig ausgelesen. Java Basics - Anfänger-Themen 3
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
L Switch-Case Multiplikation wird nicht ausgegeben Java Basics - Anfänger-Themen 1
M Text wird in der Console nicht ausgegeben. Java Basics - Anfänger-Themen 11
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
M Rechteck wird nicht angezeigt Java Basics - Anfänger-Themen 3
B Bungeecord | ProxiedPlayer wird nicht in ArrayList hinzugefügt Java Basics - Anfänger-Themen 1
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
M Mein quellcode wird nicht in der Konsole ausgegeben Java Basics - Anfänger-Themen 3
I Code wird nicht ausgeführt Java Basics - Anfänger-Themen 2
M wird der Konstruktor nicht als 1. ausgeführt? Java Basics - Anfänger-Themen 13
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9
K Jlabel mit itemlistevent Text gegeben, wird nicht angezeigt Java Basics - Anfänger-Themen 5
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
O System.out.println wird nicht ausgegeben? Java Basics - Anfänger-Themen 11
Zrebna Umgebungsvariable Wieso wird meine verwendete JDK-Version in der Prompt nicht erkannt? Java Basics - Anfänger-Themen 6
el_pato DialogFenster wird nicht in Schleife geöffnet? Java Basics - Anfänger-Themen 30
J if-Schleife innerhalb einer if-Schleife wird in der Konsole nicht gelesen Java Basics - Anfänger-Themen 4
P Apache Derby wird in Eclipse trotz Anbindung nicht gefunden Java Basics - Anfänger-Themen 6
H Array wird als Rückgabewert nicht akzeptiert? Java Basics - Anfänger-Themen 2
fuerteb Compiler-Fehler Methode wird nicht bzw. als Fehler erkannt Java Basics - Anfänger-Themen 4
L JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 10
J JTable Titel wird nicht angezeigt Java Basics - Anfänger-Themen 6
H GridPane wird nicht angezeigt Java Basics - Anfänger-Themen 0
H Endkapital wird nicht korrekt ausgegeben. Java Basics - Anfänger-Themen 5
C Methodenrückgabe wird in der main nicht berücksichtigt Java Basics - Anfänger-Themen 2
kodela Hauptklasse wird nicht gefunden Java Basics - Anfänger-Themen 3
H Befehl wird nicht ausgeführt - System.out.println Java Basics - Anfänger-Themen 3
P Bedingung in Schleife wird nicht ausgeführt Java Basics - Anfänger-Themen 5
P Variablen HttpResponse.getBody() wird automatisch org.json Object und kann nicht zu json.simple Object gecastet werden? Java Basics - Anfänger-Themen 7
N Selection Algorithmus: Methode wird nicht erkannt (BlueJ) Java Basics - Anfänger-Themen 3
M Else wird nicht ausgeführt. Java Basics - Anfänger-Themen 5
E Methoden Action Event wird nicht vollständig ausgeführt Java Basics - Anfänger-Themen 3
C Beispiel-Code mit Pair wird nicht compiliert. Java Basics - Anfänger-Themen 8
S Integer Wert wird nicht übernommen Java Basics - Anfänger-Themen 2
F Switch case wird als char nicht erkannt.... Java Basics - Anfänger-Themen 6
NeoLexx Variable für Array wird nicht korrekt übergeben Java Basics - Anfänger-Themen 45
M BorderLayout, 2Panels, EAST wird nicht angezeigt ?? Java Basics - Anfänger-Themen 2
K File wird in der .Jar nicht gefunden Java Basics - Anfänger-Themen 3
J JDatePicker: Datum wird nicht in Textfeld übernommen Java Basics - Anfänger-Themen 5
J bundel - Datei wird nicht gefunden. Trotz STRG-SHIFT-J Java Basics - Anfänger-Themen 2
S Interpreter wird nicht gefunden Java Basics - Anfänger-Themen 1
Dann07 Sound wird nicht abgespielt Java Basics - Anfänger-Themen 25
U JRE_HOME Umgebungsvariable wird nicht erkannt Java Basics - Anfänger-Themen 7
H .class Datei wird nicht ausgeführt Java Basics - Anfänger-Themen 2
G XML encoding wird nicht übernommen Java Basics - Anfänger-Themen 17
M ObservableList wird nicht richtig geleert Java Basics - Anfänger-Themen 0
P Input/Output PQ-Formel wird nicht richtig berechnet Java Basics - Anfänger-Themen 6
CptK Klassen mouseClicked wird nicht aufgerufen, während man die Maus bewegt Java Basics - Anfänger-Themen 4
M Klassen Warum wird es nicht gespeichert? Java Basics - Anfänger-Themen 2
N while Schleife wird nicht beendet, obwohl Sie hätte breaken sollen Java Basics - Anfänger-Themen 4
D JAVA JDK korrekt installieren javac wird nicht gefunden Java Basics - Anfänger-Themen 2
Zrebna Compiler-Fehler Java-Compiler wird nach 'javac' keyword-Eingabe nicht gestartet (Erste Übung) Java Basics - Anfänger-Themen 18
F Quellcode wird nicht in cmd angezeigt Java Basics - Anfänger-Themen 8
S JPanel wird nicht angezeigt Java Basics - Anfänger-Themen 1
T Methoden Boolean wird nicht gesetzt Java Basics - Anfänger-Themen 1
K Warum wird if-Schleife nicht ausgeführt? Java Basics - Anfänger-Themen 13
D Klassen Warum wird das Attribut nicht ausgegeben? Java Basics - Anfänger-Themen 8
D Schleife wird nicht "ausgeführt" Java Basics - Anfänger-Themen 10
F Wieso wird dieser Befehl nicht ausgeführt? (Anfänger) Java Basics - Anfänger-Themen 2
R jar wird nicht ausgeführt Java Basics - Anfänger-Themen 3
N Ausführung gibt keinen Fehler an, Return wird aber nicht ausgegeben Java Basics - Anfänger-Themen 22
T Methoden char wird nicht ausgegeben Java Basics - Anfänger-Themen 3
L Werbung wird nicht geladen Java Basics - Anfänger-Themen 0
J Collections Generics: Typ wird nicht erkannt Java Basics - Anfänger-Themen 7
Xentox501 KeyTyped wird nicht wahrgenommen Java Basics - Anfänger-Themen 8
O Schlüsselworte Syso wird nicht erkannt Java Basics - Anfänger-Themen 4
P Erste Schritte JLabel wird nicht angezeigt Java Basics - Anfänger-Themen 4
T Methoden Methode wird nicht auf Konsole ausgeführt Java Basics - Anfänger-Themen 3
F Erste Schritte Programm wird nicht geladen Java Basics - Anfänger-Themen 2
F Interface ImageIcon wird nicht angezeigt Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben