Eclipse String wird jedesmal neu eingelesen -.-

fhaslbs

Mitglied
guten morgen erstmals

Das Problem ist folgendes: ich lese eine Textdatei ein, die wird verändert und wieder geschrieben. Leider liest Java den String immer wieder von neuem, desshalb sieht das ganze etwa so aus:

txt-input:
bier
kalter kaffe
espresso

txt-output:
bier
bierkalter kaffe
bierkalter kaffeespresso

usw...

Ich weiss schonmal, dass der Fehler irgendwo in den folgenden Zeilen hängen muss:


[JAVA=42]
reader = new BufferedReader(new FileReader(inputtxtfile));
String badwords = null;
String badwordsnachforschleife="";
while ((badwords = reader.readLine()) != null)

{
for (int i = 0; i < badwords.length(); i++) {
if(badwords.charAt(i) != ' '){
badwordsnachforschleife += badwords.charAt(i)+".";

}else
{
badwordsnachforschleife += badwords.charAt('i');
}
}
[/code]

Hat jemand Ideen?

vielen dank für die Hilfe im voraus.
 
du läufst über alle Zeilen jedes Wort entlang und hängst alles an einen (!) String... was ist daran verwunderlich dass dann sowas rauskommt ?
 
Java:
reader = new BufferedReader(new FileReader(inputtxtfile));
            String badwords = null;
            while ((badwords = reader.readLine()) != null) 
            {
               String badwordsnachforschleife="";
                      for (int i = 0; i < badwords.length(); i++) {
                         if(badwords.charAt(i) != ' '){
                             badwordsnachforschleife += badwords.charAt(i)+".";
 
                         }else
                         {
                             badwordsnachforschleife += badwords.charAt('i');
                         }               
            }
unter der Voraussetzung dass der String auch innerhalb der while schleife geschrieben wird.
 
@bygones: Ist doch immer noch der gleiche Code, oder nicht? funktioniert bei mir leider nicht...

@ARadauer: Die Wörter sollen immer einzeln geprintet werden, aber MR.Java geht immer wieder an den anfang des Strings zurück, und schreibt vor das eigentliche wort nochmals den ganzen String
 
Ich verstehe auch nicht was Du erreichen willst? Willst Du eine formatierte Ausgabe erreichen?
Oder willst Du die Datei Zeile für Zeile auslesen und genauso ausgeben?
 
aber MR.Java geht immer wieder an den anfang des Strings zurück
wie meinst du das? MR.Java macht das was du im sagst!

du willst die wörter ausgeben?

Java:
while ((badwords = reader.readLine()) != null) {                
          System.out.println(badwords);
      }
 
Ich importiere das File, verändere es (füge zwischen jeden buchstaben nen punkt ein) und schreibe danach wieder.

Zeile um Zeile wäre vieleicht eine option, aber davon habe ich (noob) nicht viel erfahrung...
 
ach ja...

badwords.charAt('i'); ist natürlich falsch... das bedeutet zeichen an der stelle 105

System.out.println((int)'i');


so muss es lauten...badwords.charAt(i)
 
@bygones: Ist doch immer noch der gleiche Code, oder nicht? funktioniert bei mir leider nicht...
nein ist nicht... bei mir wird jede neue zeile [c]badwordsnachforschleife[/c] neu initialisiert.

wie ich geschrieben habe, es hängt davon ab, wann du den string schreibst.

es würde somit mal helfen wenn du den ganzen code (v.a. wie du schreibst) mit postest
 

Zurück
Oben