String auslesen bzw. arraylist speichern und laden

Status
Nicht offen für weitere Antworten.
G

gast, alois

Gast
so. ich bin mal wieder da. der arme abiturient ders net kann:p

also thema klingt recht simpel aber mir reichts schon wieder. java insel und sun platform bringen mich net weiter. und die suchfunktion hier auch nicht mehr.
mein problem: ich schreibe daten aus einem objekt in eine datei in der form: String leerzeichen int leerzeichen String leerzeichen und dann das nächste objekt in der gleichen weise. klappt auch. nun habe ich vor die sache zu laden und wieder in meine objekte und anschließend in meine arraylist zu schreiben. muss also aus der datei string int string auslesen objekt machn, in arraylist schreiben und nächstes objekt... ich komme soweit die ganze sache aus der datei zu lesen. habe dann allerdings einen langen string in dem alles steht. hatte mir es so gedacht immer wenn mein charAt ein leerzeichen findet das nächste zu speichern. und wenn das dritte leerzeichen gefunden wird müsste das ganze in mein objekt geschrieben werden. :/ weiß nicht ob das so geht, aber es tut auch ein andrer vorschlag wie ich meine arraylist gespeicher bekomm. aber wollte es auf dem weg versuchen den ich schulmäßig am ehesten können müsste.
gehe mal davon aus dass ich nicht einfach eine arraylist an sich speicher kann. daher auch die auslesung.
das ist nun meine lade methode: (sry. wegen der komischen bezeichnungen, bin schon etwas angenervt)

schönen dank für vorschläge

Code:
public static void lade()
    {
        
        String krank ="";
        try
        {            
        BufferedReader wooot = new BufferedReader(new FileReader("Booooom"));
        String argh ="";
        while((argh=wooot.readLine()) !=null)
        
            try
            {
            for(int oo = 0; oo < argh.length(); oo ++)
            {                
                char bembel = argh.charAt(oo);  
                                              
                if(bembel == ' ')
                {
                           //hier wuust ich nicht richtig weiter wie ichs lösen kann            
                }//if
                else
                {
                    krank = krank + bembel;  // nun schreibts alles in krank.. krank ist quasi argh..
                }//else                
            }//for        
            }//try
        catch(NullPointerException e)
        {
            System.out.println("Feeeehler: " +e.toString());
        }
      wooot.close();
        
    }
    catch(FileNotFoundException e)
    {
         System.out.println("Feeeehler: " +e.toString());
        
    }
     catch(IOException e)
        {
            System.out.println("Feeeehler: " +e.toString());
        }
}

zum nachlesen noch meine speichere methode

Code:
    public static void speichere()
    {
        try
        { 
            FileWriter baatz = new FileWriter("Booooom");
      
        for(int i = 0; i<liste.size(); i++)
        {
        try
        {
        leut = (Eintrag) liste.get(i);  
        String baum= leut.getName();
        int baum2 = leut.getNummer();
        String baum3 = leut.getGeb();
        
        baatz.write(baum+" ");
        baatz.write(baum2+" ");
        baatz.write(baum3+" ");
        }
        
        catch(IndexOutOfBoundsException e)
        {
            System.err.println("Liste ist Leer");
            System.exit(0);
        }
        }
          
            baatz.close();
        }
        
        catch(IOException e)
        {
            System.out.println("Feeeehler: " +e.toString());
        }     
    }
 
S

SlaterB

Gast
deine Benennung ist wirklich doof, weiß gar nicht wieso ich doch antworte, macht gar keine Spass ;)

die zu speichernden Strings enthalten hoffentlicht nicht selber Leerzeichen?

wo ist das Problem? einfach denken und schreiben, so geht nun mal programmieren,
Zeichen für Zeichen, alles in die erste Variable, nach dem ersten Leerzeichen in die zweite, später in eine dritte Variable,

also auf Leerzeichen achten und dann irgendwie wechseln,
probier mal ein wenig,
selbst die simpelsten Vorgänge sind ein Anfang und besser als nix,

später kannst du dann einfach
String[] parts = line.split(" ");
benutzen ;)
 
G

Gast

Gast
joa,. hab problem mit der umsetzung von "alles in die erste Variable, nach dem ersten Leerzeichen in die zweite" bekomms mit if else net gebacken. wie sag ich ihm , nach dem ersten, nach dem zweiten ? danke schonmal
 
S

SlaterB

Gast
das geht einfach nicht,
du kannst nicht bei den einfachst möglichen Algorithmen jemand anders fragen,
ohne selbständiges denken kein programmieren

naja wirds ja in Zukunft wohl weiter fragen müssen,
da kann man nix gegen machen

---

mein Tipp ist nur allgemein:
lasse bei solchen Problemen alles andere weg, dann wirds vielleicht etwas übersichtlicher
Code:
public class Test {
   public static void main(String[]args) {
     String test = "aaaaa bbbb";
     String a = "";
     String b = "";

     // Aufgabe: teile 'test' auf in 'a' und 'b'
  }
}

arbeite mit if/ else/ Schleifen,
boolean-Variablen für Programmzustände,
int-Variablen für Programmzustände, ..
 
G

Gast

Gast
so . hab noch ein problem. aber die booleans ham mich weiter gebracht. und zwar: wie deklarier ich ein leerzeichen als char. ' ' geht nämlcih nicht. dann wird nur geschauts obs ein char ist und nicht ob der char ein leerzeichen ist. danke
 
G

Guest

Gast
so. hier meine schleife. geht abe rnicht. und der debugger zeigt mir auch dass er obwohl z.B ein a im char steht er in die erste if geht. Also scheint
Code:
 if(bembel != ' ' || hans == false)
schon nicht zu funktionieren :(


Code:
for(int oo = 0; oo < argh.length(); oo ++)
            {                
                char bembel = argh.charAt(oo); 
                
                                
                 if(bembel != ' ' || hans == false)
                 {
                    krank = krank + bembel ;
                                       
                }//if
                
                
               if(bembel == ' ' || hans == false)
               { hans = true;
               }
               
               if(bembel != ' ' || hans == true)
               {
                   krank2 = krank2 + bembel;
                }
                
                if(bembel == ' ' || hans == true)
                {
                    hans2 = true;
                    
                }
                if(bembel != ' '|| hans2 ==true)
                {
                    krank3 = krank3 +bembel;
                    
                }
[/code][/quote]
 
G

Gast

Gast
meine natürlich die zweite if

if(bembel == ' ' || hans == false)
 
G

Guest

Gast
so. is jetzt ne echt komische lösung glaub ich. also so wies jetzt geht wird das erste objekt korrekt geladen. dnan ist wegen zuvielen leerzeichen ende. das ganze true und false zu durchblicken fordert mir jetzt grad zuviel ab. und die lösung bringts auch so nicht, da ich noch mehr booleans und ifs hinzufügen muss wenns mehr objekte sein sollen. ;/ also klappt net so ganz wie ichs mir gedacht hab.



Code:
public static void lade()
    {
        int ouh = 0;
        String krank5 ="";
        String krank ="";
        String krank2 = "";
    boolean hans = false;
    boolean hans2 = false;
        boolean hans3 = false;
        boolean hans4 = false;
    String krank3 ="";
    try
        {            
        BufferedReader wooot = new BufferedReader(new FileReader("Booooom"));
        String argh ="";
        while((argh=wooot.readLine()) !=null)
        
            try
            {
            for(int oo = 0; oo < argh.length(); oo ++)
            {                
                char bembel = argh.charAt(oo); 
                
                                
                 if(bembel != ' ' && hans == false)
                 {
                    krank = krank + bembel ;
                                       
                }//if
                
                if(bembel == ' ' && hans == true)
                {
                    hans2 = true;
                    hans3 = true;
                }
                
               if(bembel == ' ' && hans == false)
               { hans = true;
               }
               
               if(bembel != ' ' && hans == true && hans3 == false)
               {
                   krank2 = krank2 + bembel;
                }
                

                    
                
                if(bembel != ' '&& hans2 ==true)
                {
                    krank3 = krank3 +bembel;
                    hans4 = true;
                    
                    
                }
                
                if(bembel == ' ' && hans2 == true && hans == true && hans4 == true)
                {   
                     leut = new Eintrag(krank, krank2, krank3);
                     liste.add(ouh, leut);
                    
                    
           // System.out.println(krank);
           // System.out.println(krank2);
           // System.out.println(krank3);
                    
                    krank = "";
                    krank2 = "";
                    krank3 = "";
                   
                }    
                

                
            }//for   

           
            }//try
        catch(NullPointerException e)
        {
            System.out.println("Feeeehler: " +e.toString());
        }
      wooot.close();
        
    }
    catch(FileNotFoundException e)
    {
         System.out.println("Feeeehler: " +e.toString());
        
    }
     catch(IOException e)
        {
            System.out.println("Feeeehler: " +e.toString());
        }
}
 
S

SlaterB

Gast
steht denn wirklich alles in einer Zeile?
du hättest beim Speichern nach jedem Objekt einen Zeilenmbruch machen können,
dann wäre das in der Datei übersichtlicher und nun etwas einfacher,

ansonsten ein günstiger Trick:
die beiden boolean-Variablen wieder auf false setzen!

Code:
char bembel = argh.charAt(oo);
               
if(bembel == '  ') {
    // Zustand ändern
    if (hans == false) {
          // Wechsel zu 2
          hans = true;
    } else if (hans2 == false) {
          // Wechsel zu 3
          hans2 = true;
    } else {
          // Wechsel zum nächsten Objekt
          leut = new Eintrag(krank, krank2, krank3);
          liste.add(ouh, leut);
                   
           // reset        
           hans = false;
           hans2 = false;
           krank = "";
           krank2 = "";
           krank3 = "";
           // ouh++; ?
   }
} else {
  // normales Zeichen verarbeiten
    if (hans == false) {
           krank = krank + bembel ;
    } else if (hans2 == false) {
           krank2 = krank2 + bembel ;
    } else {
           krank3 = krank3 + bembel ;
    }
}
bei drei Zuständen über längerem Zeitraum) reichen 2 Boolean,
ist trotzdem etwas nervig, besster wäre dann ein int mit Zustand 0, 1 oder 2

passend dazu könntest du auch die drei Strings weglassen,
und in ein String-Array schreiben,
je nach Zustand ins Feld 0, 1 oder 2

Code:
char neuesZeichen = argh.charAt(i);               

if(neuesZeichen == '  ') {
    // Zustand ändern
    if (zustand < 2 {
          zustand++;
    } else {
          // Wechsel zum nächsten Objekt
          eintrag = new Eintrag(zeichen[0],zeichen[1],zeichen[2]);
          liste.add(nummer, eintrag);
                   
           // reset        
           zustand = 0;
           zeichen[0] = "";
           zeichen[1] = "";
           zeichen[2] = "";
           // nummer++; ?
   }
} else {
  // normales Zeichen verarbeiten
  zeichen[zustand] = zeichen[zustand] + neuesZeichen;
}


das war übrigens das letzte Post von mir in diesem Thread,
so lange die Variablen nicht sinnvoll benannt sind
 

padde479

Bekanntes Mitglied
Ich hätte es einfach mal mit einen StringTokenizer oder einem StreamTokenizer probiert. Dann hätte man auch alles bequem laden können.

Dieser Quelltext
Code:
BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
String str = "";
while((str = reader.readLine()) != null) {
   ...
}
hat die gleiche Wirkung wie dieser:
Code:
BufferedReader reader = new BufferedReader(new FileReader("file.txt"));
String str;
while((str = reader.readLine()) != null) {
   ...
}
Man muss den String nicht explizit mit einem Leerstring initialisieren.
 
G

Gast

Gast
vielen dank slater. nächstes mal nehm ich wieder normale namen:p aber das prog. läuft jetzt schon mal ganz. jetzt kommt nächste schwierigkeitstufe. hast mir aber gut geholfen, mir auch selbst zu helfen. bb
 

Leroy42

Top Contributor
[quote="Gast"jetzt kommt nächste schwierigkeitstufe. hast mir aber gut geholfen, mir auch selbst zu helfen. bb[/quote]

Dann bemüh' dich aber um vernünftige Bezeichner wenn dir noch weitergeholfen
werden soll.

Etwas wie

Code:
if (hans == false) { 
           krank = krank + bembel ;

mag ja vielleicht noch für Kids im Kindergarten witzig sein,
hat aber nichts bei ernsthafter Programmierung verloren.

Zum Einen ist es für jemanden der einen Fehler sucht unnötig schwer,
weil er nicht intuitiv fühlt was eine derartige Anweisung bewirken
soll und sich ständig merken muß, für was die Bezeichner eigentlich stehen.

Zum Anderen tust du dir selbst auch keinen Gefallen damit, da du
spätestens nach einem Monat (einer Woche?) selbst nicht mehr durchblickst.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
I Java String einlesen und auslesen Java Basics - Anfänger-Themen 11
K String buchstaben auslesen Java Basics - Anfänger-Themen 9
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
T String auslesen bzw. überprüfen Java Basics - Anfänger-Themen 1
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
D String untereinander auslesen lassen Java Basics - Anfänger-Themen 2
Voreck String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 9
D String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 5
B String auslesen und Stellen im Array speichern Java Basics - Anfänger-Themen 1
O String Teile auslesen Java Basics - Anfänger-Themen 4
S Rückgabe-Array lässt sich nicht auslesen, LocalDate mit String Java Basics - Anfänger-Themen 3
Todesbote Map<String, Treeset> aus Treeset bestimmten Wert auslesen Java Basics - Anfänger-Themen 4
T String Kette auslesen Java Basics - Anfänger-Themen 7
G String-Wert aus Textfeld auslesen Java Basics - Anfänger-Themen 9
T HashMap<String,Object> Werte auslesen Java Basics - Anfänger-Themen 5
S Methoden Textdatei Teil String auslesen Java Basics - Anfänger-Themen 3
M String auslesen Java Basics - Anfänger-Themen 3
M Quelltext auslesen und diesen in einen String schreiben Java Basics - Anfänger-Themen 3
L String auslesen Java Basics - Anfänger-Themen 6
H String aus Combobox auslesen Java Basics - Anfänger-Themen 2
K String auslesen aus array Java Basics - Anfänger-Themen 3
M Aus String bestimmte Inhalte auslesen Java Basics - Anfänger-Themen 8
E Inhalt zwischen zwei String auslesen? Java Basics - Anfänger-Themen 8
A einzelne Zeichen aus String auslesen Java Basics - Anfänger-Themen 3
M Update-Ticker... String in Textdatei schreiben und auslesen Java Basics - Anfänger-Themen 5
K String teile auslesen Java Basics - Anfänger-Themen 5
M Datentypen Mehrere Integer aus einem String auslesen Java Basics - Anfänger-Themen 4
M Rechenaufgabe aus String auslesen ! Java Basics - Anfänger-Themen 6
W Vector mit String[] auslesen Java Basics - Anfänger-Themen 4
L String auslesen Java Basics - Anfänger-Themen 7
H2SO3- kompletten string aus datei auslesen (nicht .readline) Java Basics - Anfänger-Themen 21
Pir0x Mehrzeiligen String auslesen Java Basics - Anfänger-Themen 8
P Zahlen aus String auslesen und dann sortieren. Java Basics - Anfänger-Themen 2
N String/char-array aus datei auslesen Java Basics - Anfänger-Themen 2
C X. Buchstaben aus String auslesen Java Basics - Anfänger-Themen 3
B String-Array in Datei speichern und wieder auslesen Java Basics - Anfänger-Themen 3
M Aus einem String bestimmte zeichen auslesen und ausgeben Java Basics - Anfänger-Themen 8
F String aus .txt-File auslesen Java Basics - Anfänger-Themen 17
M String aus Datei auslesen - Medung Leeres Parameterfeld Java Basics - Anfänger-Themen 4
K Polynom aus String auslesen Java Basics - Anfänger-Themen 8
P String aus Zahlen auslesen und in einem Array speichern Java Basics - Anfänger-Themen 3
C aus string-file uhrzeit auslesen?? Java Basics - Anfänger-Themen 4
R in einem string nach einer zahl suchen und auslesen...... Java Basics - Anfänger-Themen 3
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
D String Groß/Kleinschreibung Ignorieren Java Basics - Anfänger-Themen 4
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
Kartoffel_1 String transformation Java Basics - Anfänger-Themen 7
H String-Operation replace() - Zeichenkette verdoppeln Java Basics - Anfänger-Themen 2
K String analysieren Java Basics - Anfänger-Themen 27
Beowend String zu Date parsen Java Basics - Anfänger-Themen 1
Beowend String auf Satzzeichen überprüfen? Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
I Sass Compiler und String erhalten? Java Basics - Anfänger-Themen 7
Avalon String in Double bzw. Währung konvertieren Java Basics - Anfänger-Themen 6
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
N String überprüfen Java Basics - Anfänger-Themen 3
E String zerlegen aus args Java Basics - Anfänger-Themen 1
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
J String Filter Java Basics - Anfänger-Themen 5
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D 2D Char Array into String Java Basics - Anfänger-Themen 2
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
I Zerlegen von String Java Basics - Anfänger-Themen 3
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
I String Java Basics - Anfänger-Themen 4
I API - zurückgegebener JSON String lesen und in Entity konvertieren Java Basics - Anfänger-Themen 2
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
M Kommandozeilenparamter als EINEN String werten Java Basics - Anfänger-Themen 5
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
HolyFUT Input/Output Leerzeichen aus String entfernen - klappt nicht! Java Basics - Anfänger-Themen 13
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
Alen123 String wiederholen mit Schleifen Java Basics - Anfänger-Themen 1
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben