Spelling Typo Generator in Java

S

superdome125

Gast
Hallo Leute,
ich hoffe Ihr könnt mir helfen zerbreche mir schon seit 2 Tagen den Kopf.
Ich stehe vor einem Problem das ich selber nicht lösen kann. Da scheitert es bei mir an der Umsetzung in Java. Hatte das zwar 2 Semester lang aber so gut bin ich da auch nicht mehr.

Ich schreibe gerade ein Programm das mir eine csv Liste ließt die Wörter enthält. Diese wird in eine ArrayList überführt. Das ist soweit kein Problem.
Was passieren soll: Das erte Wort der Liste soll genommen werden und davon dann Buchstaben entfernt werden, die daraus enstandenen fehlerhaften Wörter sollen dann zum schluss wieder in eine ArrayList abgelegt werden aber hintereinandergeschrieben und mit ";" getrennt.
Bsp am Wort: Stuhl
tuhl
Suhl
Stul
Stuh
//also entfernen des 1ten Buchstaben und speichern des fehlerhaften Wortes
//entfernen des 2ten Buchstabens...usw.

Es scheitert bei den Iterationen da ich möchte das die gesamte ArrayList druchgegangen wird und ich dann für jedes Wort die passenden fehlerhaften Wörter gespeichert haben möchte.
Zum Schluss soll das ganze so im einer ArrayList aussehen: arr.get(0) = [tuhl; Suhl; Stul; Stuh]

Wozu das ganze? Ich möchte das hier nachprogrammieren
Spelling Typo Generator ~ Keyword Mispelling Tool
mit den Optionen
Skip letter
Double letters
Reverse letters

Mein Quellcode bisher enthält nur die Methode zum einlesen der csv und überführen in eine ArrayList.

Hat jemand eine Idee oder Denkanstöße wie ich das Lösen kann?

Grüße
Dominik
 
S

superdome125

Gast
Hi,
versucht habe ich zunächst mittels Iterator die ArrayList mit den Wörtern zu durchlaufen,
dann mit toCharArray so für jedes Wort ein CharArray erstellt. Dann eine for-schleife mit reingemacht damit dann das CharArray durchlaufen wird und hier fehlt mir die Idee wie ich die Buchstaben rauslösche und es dann in eine neue ArrayList speichern kann.
 
S

superdome125

Gast
Java:
 import java.io.BufferedReader;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.ArrayList;
import java.util.Iterator;

public class MISGenerator {

      private String zeile;

      private ArrayList<String> list1 = new ArrayList<String>();

      private ArrayList<String> list2 = new ArrayList<String>();

      private ArrayList<String> result = new ArrayList<String>();

      private String s1;

      // private String s2;
      int x;
      char buchstabe;
      char buchstabe2;
      char[] wortx;
      String ausgabeWort;
      int wortlaenge;
      char[] wortT;
      int counter = 0;

      public static void main(String[] args) {

            MISGenerator c = new MISGenerator();

            c.leseData();
            c.bearbeiteDaten();
            //
            //
            //
            // c.saveData();

      }

      public void leseData() {

            try {

                  FileReader file = new FileReader("Mappe2.csv");

                  BufferedReader data = new BufferedReader(file);

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

                        s1 = zeile.substring(0);
                        list1.add(s1);

                        // s2 = zeile.substring(zeile.indexOf(';') +1, zeile.length());
                        // list2.add(s2);
                        //
                  }

            } catch (FileNotFoundException e) {

                  System.out.println("Datei nicht gefunden");

            } catch (IOException e) {

                  System.out.println("E/A-Fehler");

            }

            for (int i = 0; i < list1.size(); i++) {

                  // System.out.println(list1.get(i));
            }

      }

      public void bearbeiteDaten() {

//          for (int i = 0; i < list1.size(); i++) {
            
            
            StringBuilder sb = new StringBuilder();
            
            
            Iterator<String> itr = list1.iterator();
            
            
            
                  while(itr.hasNext()){
                        
                  char[] wortx = itr.next().toCharArray();
            
                  sb.append(wortx, 0, wortx.length);
                  
//                char[] wortx = ivar.toCharArray();
                  wortlaenge = wortx.length;

      
                  for (int f = 0; f < sb.length(); f++) {
                        
                             for (int x = 0; x < sb.length(); x++) {
                                   
                                   
                                   
                                   
                                   
                                   
                                   
                                   
                             
                             }
                             list2.add(sb.charAt(f)+"");
                        
//                      list2.add(wortx[f] + "");
//                      
//                      if(f==wortx.length-1){
//                            list2.add(";");
//                      }
//                      
//                      
                        
                        

                  }// ende forschleife

                  
//          }// ende forschleife

            

            }//endwhile

                  
                  for (int i = 0; i < sb.length(); i++) {
                        
                        System.out.println(list2.get(i));

                        //System.out.println(sb.charAt(i));
                  }
                  
                  
                  
                  
                  
                  
                  
                  
                  
                  
      }// ende Methode

      public void schreibeData() {

            try

            {

                  File file = new File("Ergebnis.csv");

                  FileWriter fw = new FileWriter(file);

                  for (int i = 0; i < result.size(); i++) {

                        String zwischenspeicher = (String) result.get(i);

                        fw.write(zwischenspeicher + "\n");

                  }

                  fw.flush();

                  fw.close();

            }

            catch (IOException e)

            {

                  e.printStackTrace();

            }

      }

}
 

Andi_CH

Top Contributor
Na, das ist ja unlesbar - entferne mal alle 1000 Leerzeilen - was willst du überhaupt iterieren?
Dann versuchst du viel zu viel auf einmal - oder geht das Lesen schon?

Keine Ahnung ob du so etwas suchst:

Java:
import java.util.ArrayList;

public class TypoGenerator {

	private static String removeChar(String word, int pos) {
		if (pos == 0) {
			return word.substring(1);
		} else if (pos==word.length()-1) {
			return word.substring(0, word.length()-1);	
		} else {
			return word.substring(0, pos) + word.subSequence(pos+1, word.length());
		}
	}

	public static ArrayList<String> generate(String word) {
		ArrayList<String> retVal = new ArrayList<String>();
		for (int i=0; i<word.length(); i++) {
			String res = removeChar(word, i);
			if (res.length()>1)
				retVal.addAll(generate(res));
			retVal.add(res);
		}
		return retVal;
	}

	public static void main (String... args) {
		ArrayList<String> res = generate("ABC");
		System.out.println(res);
	}
}
 
S

superdome125

Gast
Das mit den vielen Leerzeichen tut mir leid hab vergessen es vor dem posten zu formatieren.

Die ArrayList list1 enthält schon die Daten aus einer csv, das einlesen ist kein Problem.
Ich will die list1 iterieren und dann mittels char[] wortx = itr.next().toCharArray()
für jedes in der list1 vorkommende Wort ein Char[] machen.

Nun will ich in einer Schleife jedes Wort so bearbeiten das es diesem Format entspricht
Beispielwort: Stuhl
list2 enthält dann für diese wort im erten Arrayplatz : "tuhl";"Suhl";"Sthl";"Stul";"Stuh"

Hoffe ich drücke mich verständlich genug aus was mein Problem angeht.
 
S

superdome125

Gast
Danke schon mal für deine Hilfe :)

Ich komm jedoch mit den zwei Methoden nicht weiter, stehe nun voller verwirrtheit auf dem Schlauch und weis nicht wie ich die in meinem Code unterbringen soll.

Kannst du kurz erläutern was die beiden Methoden machen?
Die removeChar() entfernt von einem übergebenen String den Buchstaben an der Position int
Aber die andere kann ich nicht ganz nachvollziehen.
 
S

superdome125

Gast
@Andi_CH
Danke nochmals für deine Hilfe die Frage vorhin hat sich erübrigt, Programm tut was es soll :)

Jetzt bin ich aber nochmals ratlos...
Eine weitere Methode soll mir die eingelesenen Wörter mit doppelten Buchstaben versehen.
Hab aber irgendwie einen Denkfehler, bekomme als Ausgabe nur das folgende:
DDom
dAdidas
iAdidas
sAirstep
iAirstep

Ausgangsliste ist:
Dom
Adidas
Airstep

Was es sein soll:
DDom
Doom
Domm
usw..


Java:
import java.io.BufferedReader;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.ArrayList;
import java.util.Iterator;

public class MISGenerator {

	private String zeile;

	private ArrayList<String> list1 = new ArrayList<String>();

	private ArrayList<String> list2 = new ArrayList<String>();

	private ArrayList<String> list3 = new ArrayList<String>();

	private ArrayList<String> list4 = new ArrayList<String>();

	private ArrayList<String> result = new ArrayList<String>();

	private String s1;

	public static void main(String[] args) {

		MISGenerator c = new MISGenerator();

		c.leseData();
		// c.skipLetters();
		c.doubleLetters();
	}

	public void leseData() {

		try {

			FileReader file = new FileReader("Mappe2.csv");

			BufferedReader data = new BufferedReader(file);

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

				s1 = zeile.substring(0);
				list1.add(s1);

			}

		} catch (FileNotFoundException e) {

			System.out.println("Datei nicht gefunden");

		} catch (IOException e) {

			System.out.println("E/A-Fehler");

		}

	}

	private static String removeChar(String word, int pos) {
		if (pos == 0) {
			return word.substring(1);
		} else if (pos == word.length() - 1) {
			return word.substring(0, word.length() - 1);
		} else {
			return word.substring(0, pos)
					+ word.subSequence(pos + 1, word.length());
		}
	}

	public static ArrayList<String> generate(String word) {
		ArrayList<String> retVal = new ArrayList<String>();
		for (int i = 0; i < word.length(); i++) {
			String res = removeChar(word, i);
			if (res.length() > 1)
				retVal.addAll(generate(res));
			retVal.add(res);
		}
		return retVal;
	}

	public void skipLetters() {

		String s = null;

		for (int i = 0; i < list1.size(); i++) {
			s = list1.get(i).toString();

			for (int x = 0; x < s.length(); x++) {

				list2.add(removeChar(s, x));

			}

		}

		for (int i = 0; i < list2.size(); i++) {
			System.out.println(list2.get(i));
		}

	}// ende Methode

	public void doubleLetters() {

		for (int i = 0; i < list1.size(); i++) {
			String word = list1.get(i).toString();
			String a = word;

			for (int x = 0; x < word.length(); x++) {

				char buchstabe = word.charAt(x);
				a.substring(x, a.length());
				list3.add(x, buchstabe + a);

			}

			System.out.println(list3.get(i));
		}

	}

	public void schreibeData() {

		try

		{

			File file = new File("Ergebnis.csv");

			FileWriter fw = new FileWriter(file);

			for (int i = 0; i < result.size(); i++) {

				String zwischenspeicher = (String) result.get(i);

				fw.write(zwischenspeicher + "\n");

			}

			fw.flush();

			fw.close();

		}

		catch (IOException e)

		{

			e.printStackTrace();

		}

	}

}
Danke allen die sich schonmal die Mühe gemacht haben.
 
J

JohannisderKaeufer

Gast
Java:
private static String removeChar(String word, int pos) {
        if (pos == 0) {
            return word.substring(1);
        } else if (pos == word.length() - 1) {
            return word.substring(0, word.length() - 1);
        } else {
            return word.substring(0, pos)
                    + word.subSequence(pos + 1, word.length());
        }
    }

Wenn das funktioniert dann musst du um doppelte Buchstaben zu bekommen nur dass hier ein wenig anpassen und genauso aufrufen, wie die methode removeChar()

Java:
private static String doubleChar(String word, int pos) {
    String doubledChar = word.charAt(pos) + word.charAt(pos);
        if (pos == 0) {
            return doubledChar + word.substring(1);
        } else if (pos == word.length() - 1) {
            return word.substring(0, word.length() - 1) + doubledChar;
        } else {
            return word.substring(0, pos)
                    + doubledChar +
                    + word.subSequence(pos + 1, word.length());
        }
    }

Den Buchstaben suchen mit charAt(pos)
Einen String erzeugen, der dem doppelten Buchstaben entspricht.

Diesen String entweder am Anfang hinzufügen
oder diesen String am Ende hinzufügen
oder diesen String in der Mitte hinzufügen.
 

Andi_CH

Top Contributor
So ganz ohne Programmierkenntnisse und Plan ist es halt schwierig etwas umzuseetzen und hilft auch StrginBuilder oder XyzClass rein gar NICHTS.

So wie ich removeChar gemacht habe musst du nun doubleChar implementieren - Teile den String an einer gegebenen Position in einen vorderen und hinteren Teil. Bestimme den Buchstaben den du dazwischen haben willst und bau dir mit dem vorderenTeil, dem Buchstaben und dem hinteren Teil einen neuen String zusammen. That's it

... und wenn das eben gesagte unverständlich tönt, dann spiele das Ganze mit Zettelchen (String), Schere (vorderer und hinterer Teil basteln) und kleinen Zettelchen (Buchstaben) auf dem Tisch durch, protokoliere das Ganze in deutscher (oder einer anderen Sprache) und übersetze das dann Satz für Satz nach Java - ich mach das auch nicht viel anders.


Auch ja das habe ich noch vergessen - testen.

Teste das Ganze dann mit verschiednenen Strings und Positionen
z.B.

doubleChar("ABC", 0);
doubleChar("ABC", 1);
doubleChar("ABC", 2);
doubleChar("ABC", 5);

und überlege dir was bei jedem der Fälle passieren soll, warum es möglicherweise nicht geht und wie du den Code erweitern musst, dass es geht ...

so als erste Variante auf der du aufbauen kannst:

Java:
public static String doubleChar(String word, int pos) {
	return word.substring(0, pos) + word.charAt(pos) + word.substring(pos);
}
 
Zuletzt bearbeitet:
S

superdome125

Gast
Danke für die Hilfe :)
Hier nochmal der fertige Code

import java.io.BufferedReader;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.ArrayList;

public class MISGenerator {

private String zeile;

private ArrayList<String> list1 = new ArrayList<String>();

private ArrayList<String> list2 = new ArrayList<String>();

private ArrayList<String> list3 = new ArrayList<String>();

private ArrayList<String> list4 = new ArrayList<String>();

private ArrayList<String> result = new ArrayList<String>();

private String s1;

public static void main(String[] args) {

MISGenerator c = new MISGenerator();

c.leseData();
c.skipLetters();
c.doubleLetters();
c.reverseLetters();
c.formatData();
c.schreibeData();
}

public void leseData() {

try {

FileReader file = new FileReader("Mappe2.csv");

BufferedReader data = new BufferedReader(file);

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

s1 = zeile.substring(0);
list1.add(s1);

}

} catch (FileNotFoundException e) {

System.out.println("Datei nicht gefunden");

} catch (IOException e) {

System.out.println("E/A-Fehler");

}

}

private static String removeChar(String word, int pos) {
if (pos == 0) {
return word.substring(1);
} else if (pos == word.length() - 1) {
return word.substring(0, word.length() - 1);
} else {
return word.substring(0, pos)
+ word.subSequence(pos + 1, word.length());
}
}

public static ArrayList<String> generate(String word) {
ArrayList<String> retVal = new ArrayList<String>();
for (int i = 0; i < word.length(); i++) {
String res = removeChar(word, i);
if (res.length() > 1)
retVal.addAll(generate(res));
retVal.add(res);
}
return retVal;
}

public void skipLetters() {

String s = null;

for (int i = 0; i < list1.size(); i++) {
s = list1.get(i).toString();

for (int x = 0; x < s.length(); x++) {

list2.add(removeChar(s, x) + ",");
// list4.add(list2.get(x)+ ",".toString());
}

}

// for (int i = 0; i < list2.size(); i++) {
// System.out.println(list2.get(i));
// }

}// ende Methode

public void doubleLetters() {
for (int i = 0; i < list1.size(); i++) {
String word = list1.get(i).toString();
String ergebnis = null;

for (int j = 0; j < word.length(); j++) {
if (j == 0) {
// list3.add(word);
ergebnis = word.substring(j, j + 1)
+ word.substring(j, word.length());
list3.add(ergebnis + ",");
// result.add(list3.get(j) + ",");
} else {

ergebnis = word.substring(0, j + 1)
+ word.substring(j, j + 1)
+ word.substring(j + 1, word.length());
list3.add(ergebnis);
// result.add(list3.get(j)+ ",");

}// end if-else
}// end for
}// end for

// for (int k = 0; k < list3.size(); k++) {
//
// System.out.println(list3.get(k));
// }// end for
}// end method doubleLetters

public void reverseLetters() {

for (int i = 0; i < list1.size(); i++) {
String word = list1.get(i).toString();
String ergebnis = null;

for (int j = 0; j < word.length() - 1; j++) {

if (j == 0) {

ergebnis = word.substring(j + 1, j + 2)
+ word.substring(j, j + 1)
+ word.substring(j + 2, word.length());
list4.add(ergebnis + ",");
// if(word.length() <= j){
// result.add(list4.get(j)+ ",");
// }

} else {

ergebnis = word.substring(0, j)
+ word.substring(j + 1, j + 2)
+ word.substring(j, j + 1)
+ word.substring(j + 2, word.length());

list4.add(ergebnis);
// if(word.length() <= j){
// result.add(list4.get(j)+ ",");
// }

}// end if-else

}// end for

}// end for

// for (int k = 0; k < list3.size(); k++) {
//
// System.out.println(list3.get(k));
// }// end for

}

public void formatData() {

System.out.println(list2.size() + "-" + list3.size() + "-"
+ list4.size() + "-" + result.size());
for (int i = 0; i < result.size(); i++) {

System.out.println(result.get(i));
}
}// end method formatData

public void schreibeData() {

try

{

File file = new File("Ergebnis.csv");

FileWriter fw = new FileWriter(file);

for (int i = 0; i < result.size(); i++) {

String zwischenspeicher = (String) result.get(i);

fw.write(zwischenspeicher + "\n");

}

fw.flush();

fw.close();

}

catch (IOException e)

{

e.printStackTrace();

}

}

}
[/code]

Die einzelnen Methoden tun was sie sollen.

Könnte mir jemand noch einen Tipp verraten wie ich das Formatieren kann...
Möchte das ganze ja in einer Liste zum Schluss stehen haben in der Form
arr(0):= word1, word1(skippLetters angewendet), word1(doubleLetters), word1(reverseLetters)
Bsp.: apfel, pfel,afel,apel,apfl,apfe,aapfel,appfel,apffel,apfeel,apfell,pafel,afpel,apefl,apfle

Habe schon versucht die einzelnen Listen zu verknüpfen aber da geht dann die Wortzugehörigkeit verloren, hat da jemand noch Ahnung?
 
S

superdome125

Gast
Java:
import java.io.BufferedReader;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.ArrayList;

public class MISGenerator {

	private String zeile;

	public ArrayList<String> list1 = new ArrayList<String>();

	// public ArrayList<String> list2 = new ArrayList<String>();
	//
	// public ArrayList<String> list3 = new ArrayList<String>();
	//
	// public ArrayList<String> list4 = new ArrayList<String>();
	//
	// public static ArrayList<String> list5 = new ArrayList<String>();
	//
	public static ArrayList<String> list6 = new ArrayList<String>();

	public ArrayList<String> result = new ArrayList<String>();

	public String s1;

	public MISGenerator() {

	}

	public ArrayList<String> leseData() {

		try {

			FileReader file = new FileReader("Mappe2.csv");

			BufferedReader data = new BufferedReader(file);

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

				s1 = zeile.substring(0);
				list1.add(s1);

			}

			file.close();
			data.close();

		} catch (FileNotFoundException e) {

			System.out.println("Datei nicht gefunden");

		} catch (IOException e) {

			System.out.println("E/A-Fehler");

		}
		return list6;

	}

	private static String removeChar(String word, int pos) {
		if (pos == 0) {
			return word.substring(1);
		} else if (pos == word.length() - 1) {
			return word.substring(0, word.length() - 1);
		} else {
			return word.substring(0, pos)
					+ word.subSequence(pos + 1, word.length());
		}
	}

	public static ArrayList<String> generate(String word) {
		ArrayList<String> retVal = new ArrayList<String>();
		for (int i = 0; i < word.length(); i++) {
			String res = removeChar(word, i);
			if (res.length() > 1)
				retVal.addAll(generate(res));
			retVal.add(res);
		}
		return retVal;
	}

	public String skipLetters(String word) {

		String s = null;
		String w = word;

		// for (int i = 0; i < list1.size(); i++) {
		// s = list1.get(i).toString();

		for (int x = 0; x < w.length() - 1; x++) {

			// list2.add(removeChar(s, x));
			w += removeChar(w, x) + ",";
		}

		// }
		return w;

		// for (int i = 0; i < list2.size(); i++) {
		// System.out.println(list2.get(i));
		// }

	}// ende Methode

	public String doubleLetters(String word) {
		String w = word;

		// for (int i = 0; i < list1.size(); i++) {
		// w = list1.get(i).toString();
		String ergebnis = null;

		for (int j = 0; j < w.length(); j++) {
			if (j == 0) {

				ergebnis = w.substring(j, j + 1) + w.substring(j, w.length());

				// list3.add(ergebnis);
				w += ergebnis + ",";
			} else {

				ergebnis = w.substring(0, j + 1) + w.substring(j, j + 1)
						+ w.substring(j + 1, w.length());

				// list3.add(ergebnis);
				w += ergebnis + ",";

			}// end if-else
		}// end for
			// }// end for
		return w;

		// for (int k = 0; k < list3.size(); k++) {
		//
		// System.out.println(list3.get(k));
		// }// end for
	}// end method doubleLetters

	public String reverseLetters(String word) {
		String w = word;

		// for (int i = 0; i < list1.size(); i++) {
		// w = list1.get(i).toString();
		String ergebnis = null;

		for (int j = 0; j < w.length() - 1; j++) {

			if (j == 0) {

				ergebnis = w.substring(j + 1, j + 2) + w.substring(j, j + 1)
						+ w.substring(j + 2, w.length());
				// list4.add(ergebnis);
				w += ergebnis + ",";
			} else {
				if (w.length() >= 3) {
					ergebnis = word.substring(0, j)
							+ word.substring(j + 1, j + 2)
							+ word.substring(j, j + 1)
							+ word.substring(j + 2, word.length());
					w += ergebnis + ",";
					// list4.add(ergebnis);
				}// endif

			}// end if-else

		}// end for

		// }// end for
		return w;

		// for (int k = 0; k < list4.size(); k++) {
		//
		// System.out.println(list4.get(k));
		// }// end for

	}

	// public void formatData() {
	// String wort = null;
	// String res;
	// System.out.println(list1.size() + "-" + list2.size() + "-"
	// + list3.size() + "-" + list4.size() + "-" + result.size());
	//
	// for (int i = 0; i < list1.size(); i++) {
	// wort = list1.get(i).toString();
	//
	//
	//
	//
	//
	//
	//
	//
	//
	// }// end for
	//
	//
	//
	//
	//
	// for (int i = 0; i < list5.size(); i++) {
	// System.out.println(list5.get(i));
	// }
	// }// end method formatData

	public void schreibeData() {

		try

		{

			File file = new File("Ergebnis.csv");

			FileWriter fw = new FileWriter(file);

			for (int i = 0; i < result.size(); i++) {

				String zwischenspeicher = (String) result.get(i);

				fw.write(zwischenspeicher + "\n");

			}

			fw.flush();

			fw.close();

		}

		catch (IOException e)

		{

			e.printStackTrace();

		}

	}

}

Und hier die ausführbare Klasse

Java:
import java.util.ArrayList;

public class MISGeneratorRun {

	static MISGenerator c = new MISGenerator();
	static ArrayList<String> arr = new ArrayList<String>();

	public static void main(String[] args) {
		c.leseData();
		for (int i = 0; i < c.list1.size(); i++) {
			arr.add(c.skipLetters(c.list1.get(i)) + ","
					+ c.doubleLetters(c.list1.get(i)) + ","
					+ c.reverseLetters(c.list1.get(i)));

		}
		for (int i = 0; i < arr.size(); i++) {

			System.out.println(arr.get(i));
		}

	}

}

Schmeisst nen Fehler:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source)
at java.lang.AbstractStringBuilder.append(Unknown Source)
at java.lang.StringBuilder.append(Unknown Source)
 
G

Gast2

Gast
Siehe API:
http://download.oracle.com/javase/1.4.2/docs/api/java/lang/OutOfMemoryError.html hat gesagt.:
Thrown when the Java Virtual Machine cannot allocate an object because it is out of memory, and no more memory could be made available by the garbage collector.

Deinen Code habe ich mir nicht angeschaut, aber vllt reichts wenn du den Speicher erhöhst. Siehe Google.
 
S

superdome125

Gast
So hab den Fehler gefunden, ich hatte eine Endlosschleife in jeder Methode, hat sich wohl eingeschlichen als ich die Methoden abgeändert hab.
Funktioniert nun einwandfrei. (Thema kann geschlossen werden)

Danke allen die mir geholfen haben, auch den Leuten aus dem Chat :)
Tolles Forum!
 

Neue Themen


Oben