Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Guten Tag ! Ich komme bei folgendem Problem leider nicht weiter und würde mich sehr freuen, wenn Ihr mir helfen könntet.
Ich schreibe ein Programm, welches in einen vordefinierten Text nach einer bestimmten Zeichenanzahl, einen Zeilenumbruch einbaut, ohne jedoch Wörter abzuschneiden.
Beim ersten Druchlauf klappt es, aber wenn ich eine for-Schleife einbaue, gibt es nur bugs... Hier der funktionierende Code für einen Durchlauf.
Java:
public class Testklasse{
public Testklasse(String text) {
this.text = text;
text.trim();
}
public String formatierung(int breite) {
String text_neu = null;
int z = 0;
text_neu = text.substring(i, breite);
z = kette.lastIndexOf(' ');
text_neu = text.substring(i, z);
StringBuilder textPuffer = new StringBuilder(kette);
textPuffer.insert(z, '\n');
return kette;
}
}
public class Test {
public static void main(String[] args) {
String test = "allo Welt, heute ist ein wunderschöner Tag und ich habe eine blaue Hose an! Sie passt mir sehr gut. Einen schönen Tag noch.";
Testklasse a = new Testklasse(test);
System.out.println(a.formatierung(10)); // zeilenumbruch nach 10 zeichen
}
}
habe das dank einer lösung soweit versucht zu optimieren, trotzdem noch der selbe fehler, nur anders:
habe eine hilsvariable (breite_neu) hinzugefügt und i nach dem durchlauf gleich z gesetzt
Java:
int breite_neu = breite;
for(i=0; i<=text.length(); i = i+breite)
{
text_neu = text.substring(i, breite_neu);
z = kette.lastIndexOf(' ');
text_neu = text.substring(i, z);
i = z;
breite_neu = breite_neu + breite;
StringBuilder textPuffer = new StringBuilder(kette);
textPuffer.insert(z, '\n');
}
Wofür machst du da ne For schleife rein. Du änderst doch gar nichts an dem code da drin. Vorher macht er was du willst. Wieso dann in eine For Schleife rein packen? Macht doch so gar kein Sinn.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at java.lang.AbstractStringBuilder.insert(AbstractStringBuilder.java:1166)
at java.lang.StringBuilder.insert(StringBuilder.java:366) at Absatz.getText(Testklasse.java:33) // das ist der oben stehende code
at Test.main(Test.java:9)
Prüf' doch einfach mal im Debugger die Werte von 'i' und 'breite_neu' an der Stelle ....
Von mir aus kannst Du sie im Notfall auch per "println.out" ausgeben lassen !