Fehler bei Abfrage auf Char-Array

  • Also die Abfrage macht folgendens. Sie liest das Textfile ein und sorgt dafür das egal wie viel leerzeichen auftauchen die einzelnen Wörter mit ein ";" getrennt werden und in denn String "text" gespeichert werden. Damit ich Sie später schön Splitten kann und ihre Position bestimmen kann. Bin noch ein Anfänger :). Naja seht selbst.

    Hier erstmal der Code:

    char[] zeile_array ;
    zeile_array = newchar[25000];

    String pfad;
    pfad = System.getProperty("user.dir") + "\\Personen.txt";
    pfad = pfad.replace("\\","/");
    BufferedReader lese = new BufferedReader(new FileReader(pfad));


    String zeile = "";
    String text = "";
    while((zeile = lese.readLine()) != null) {
    zeile_array = zeile.toCharArray();
    for(int c = 0;zeile_array.length != 0; c++){
    String cha = String.valueOf(zeile_array[c]);
    if(cha!=" "){
    text = text + cha;
    }
    else{
    cha = String.valueOf(zeile_array[c+1]);
    if(cha!=" "){
    text = text + ";";
    }
    }
    }



    textbox.setText(text);

    Folge ist --->
    java.lang.ArrayIndexOutOfBoundsException

    Würde echt Hilfe brauchen damit das geht.
    ( Falls mir noch einer sagen kann wie ich das schöner formatieren kann hier wäre das auch gut :) )

    Einmal editiert, zuletzt von Blackmonkey01 (29. November 2010 um 12:03)

  • Erstmal danke stimmt so war das Sinnlos :). Jetzt hab ich es hier soweit das er es ausliest aber trozdem mit Leerzeichen.
    Also zum Beispiel Person.txt:
    1 Manfred H. RUS 75664 <----- Hier können beliebig viele leerzeichen zwischen denn wörtern sein.
    2 Timo L. GER 19990


    Es ändert sich nichts gegenüber dem textfile wenns in der textbox steht...
    So sollte es sein:
    1;Manfred;H.;RUS;75664
    2;Timo;L.;GER;19990


    (Wie weit wirken sich Tabs darauf aus wenn ich leerzeichen zähle ? Also wenn diese zwischen denn Wörtern vorkommen)




    zeile_array

    = newchar[200];


    String pfad;


    pfad = System.getProperty("user.dir") + "\\Personen.txt";


    pfad = pfad.replace("\\","/");


    BufferedReader lese = new BufferedReader(new FileReader(pfad));


    String zeile = "";


    String text = "";


    while((zeile = lese.readLine()) != null) {


    ........zeile_array = zeile.toCharArray();


    ........for(int c = 0;c != zeile_array.length; c++){

    .............String cha = String.valueOf(zeile_array[c]);

    .............if(cha!=" "){
    ...................text = text + cha;
    .............}
    .............else{
    .............cha = String.valueOf(zeile_array[c+1]);
    .............if(cha!=" "){
    ..................text = text + ";";
    .............}
    ........}
    }


    textbox.setText(text);


    Also er hollt sich denn Text liest die "zeile" ein. Dann wandelt er die "zeile" in ein Char-Array um und macht eine For-Schleife die solange geht wie die länge des Char-Arrays. Danach wandelt er denn aktuellen Char in ein String um. Ist es kein leerzeichen wir er in denn "text" eingefügt ist es eins geht er in die else und frägt ob der folge Char auch leer ist. Ist er das nicht kommt logischerweise ein ";" da ein neues wort kommt nach dem Leerzeichen. Und an sonsten kommt eben der nächte Char der "zeile".

    5 Mal editiert, zuletzt von Blackmonkey01 (29. November 2010 um 13:16)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!