S
Stefanx3
Gast
Hallo 
Ich habe ein Problem wie im Titel schon beschrieben. Ich weiß nicht genau wo der Fehler jetzt genau ist, aber ich bekomme eine unerwartete Ausgabe. Ich vermute das beim Löschen oder Hinzufügen etwas falsch gemacht wird.
Ich arbeite mit Eclipse Juno.
Wortliste:
TestWortliste:
Meine Ausgabe ist:
Ich hoffe um hilfe, denn ich habe grad wirklich keine Ahnung was ich falsch mache
Danke in vorraus !
Ich habe ein Problem wie im Titel schon beschrieben. Ich weiß nicht genau wo der Fehler jetzt genau ist, aber ich bekomme eine unerwartete Ausgabe. Ich vermute das beim Löschen oder Hinzufügen etwas falsch gemacht wird.
Ich arbeite mit Eclipse Juno.
Wortliste:
Java:
package stefan;
import java.io.*;
import javax.swing.JOptionPane;
public class Wortliste {
String[] woerter;
/*
* Default Konstruktor
*
*/
public Wortliste(){
woerter = new String[1];
woerter[0] = "Default";
}
/**
* Konstruktor mit einem Parameter
*
* @param text
*/
public Wortliste(String wort){
woerter = new String[1];
wort = woerter[0];
}
/**
* Fügt ein Wort dem Array hinzu
*
* @param wort
*/
public void hinzufuegen(String wort){
String[] neu = new String[woerter.length+1];
for(int i = 0; i < woerter.length; i++){
neu[i] = woerter[i];
}
neu[woerter.length] = wort;
woerter = neu;
}
/**
* Löscht wein Wort aus dem Array
*
* @param wort
*/
public void loeschen(String wort){
String[] temp = new String[woerter.length-1];
int neuIndex = 0;
for(int altIndex = 0; altIndex < woerter.length; altIndex++){
if(!(woerter[altIndex].equals(wort))){
temp[neuIndex++] = woerter[altIndex];
}
}
woerter = temp;
}
/**
* Löscht ein Wort aus dem Array aber über den Index des Wortes im Array
*
* @param index
*/
public void loeschen(int index){
int z = 0;
String[] temp = new String[woerter.length-1];
for(int i = 0; i < woerter.length-1; i++){
if(i != index){
temp[i] = woerter[z++];
}
}
woerter = temp;
}
/**
* Übernimmt einen Index und gibt das Array an dieser Stelle zurück
*
* @param index
* @return woerter Das Wort aus dem angegebenen Index
*/
public String get(int index){
return woerter[index];
}
/**
* Gibt alle im Array gespeicherten Wörter zurück
*
* @return text Die Wortliste wird ausgegeben
*/
public String liste(){
String text = "";
for(int i = 0; i < woerter.length; i++){
text += woerter[i] + "\n";
}
return text;
}
/**
* Ladet sämtliche Wörter aus der Datei in das Attribut
*
* @param dateiname
*/
public void laden(String dateiname){
try{
RandomAccessFile raf = new RandomAccessFile(dateiname, "r");
for( ; raf.getFilePointer() != raf.length(); ){
this.hinzufuegen(raf.readLine());
}
raf.close();
}catch(FileNotFoundException fnfe){
JOptionPane.showMessageDialog(null, "Fehler: " + fnfe.getMessage());
}catch(IOException ioe){
JOptionPane.showMessageDialog(null,"Fehler: " + ioe.getMessage());
}catch(IllegalArgumentException iae){
JOptionPane.showMessageDialog(null,"Fehler: " + iae.getMessage());
}catch(SecurityException se){
JOptionPane.showMessageDialog(null,"Fehler: " + se.getMessage());
}
}
/**
* Speichert sämtliche Wörter in die Datei
*
* @param dateiname
*/
public void speichern(String dateiname){
try{
RandomAccessFile raf = new RandomAccessFile(dateiname, "rw");
raf.writeUTF(this.liste());
raf.close();
}catch(FileNotFoundException fnfe){
JOptionPane.showMessageDialog(null, "Fehler: " + fnfe.getMessage());
}catch(IOException ioe){
JOptionPane.showMessageDialog(null,"Fehler: " + ioe.getMessage());
}catch(IllegalArgumentException iae){
JOptionPane.showMessageDialog(null,"Fehler: " + iae.getMessage());
}catch(SecurityException se){
JOptionPane.showMessageDialog(null,"Fehler: " + se.getMessage());
}
}
}
TestWortliste:
Java:
package stefan;
public class TestWortliste {
public static void main(String[] args){
Wortliste w = new Wortliste();
w.hinzufuegen("test1");
w.hinzufuegen("test2");
w.hinzufuegen("test3");
w.hinzufuegen("test4");
w.hinzufuegen("test5");
w.hinzufuegen("test6");
w.hinzufuegen("test7");
w.loeschen("test3");
w.loeschen(3);
System.out.println(w.get(2));
System.out.println(w.liste());
w.speichern("D:\\stefan.dat");
w.laden("D:\\stefan.dat");
System.out.println("Das Geladene:\n");
System.out.println(w.liste());
}
}
Meine Ausgabe ist:
Code:
test2
Default
test1
test2
null
test4
test5
Das Geladene:
Default
test1
test2
null
test4
test5
Ich hoffe um hilfe, denn ich habe grad wirklich keine Ahnung was ich falsch mache
Danke in vorraus !