App installieren
How to install the app on iOS
Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
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.
Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
java String verkürzen gibt fehlermeldung
- Ersteller Ghostryder
- Erstellt am
Ghostryder
Lieutnant
Hallo,
ich habe einen String den ich im Konstruktor zuweise usw. Nun muss ich diesen String veränder was mit sich führt, dass es weniger Zeichen werden. Das Problem ist aber, dass bei veränderter Zeichenzahl im String der Fehler .StringIndexOutOfBoundsException auftritt! Wie kann ich dies verhindern ? Hier die Zeile wobei i und abbruchSatz im Bereich vom this.satz liegen ! :
this.satz = this.satz.substring(i, abbruchSatz);
ich habe einen String den ich im Konstruktor zuweise usw. Nun muss ich diesen String veränder was mit sich führt, dass es weniger Zeichen werden. Das Problem ist aber, dass bei veränderter Zeichenzahl im String der Fehler .StringIndexOutOfBoundsException auftritt! Wie kann ich dies verhindern ? Hier die Zeile wobei i und abbruchSatz im Bereich vom this.satz liegen ! :
this.satz = this.satz.substring(i, abbruchSatz);
Kann es sein, dass Du Dich da um einen verzählst?
Schau Dir mal die Beispiele in der J2SE-API an...
Mach doch davor mal ne Ausgabe von dem String, i und abbruchSatz und schau mal nach
Schau Dir mal die Beispiele in der J2SE-API an...
Code:
"hamburger".substring(4, 8 ) returns "urge"
"smiles".substring(1, 5) returns "mile"
Ghostryder
Lieutnant
nein da liegt leider nicht das Problem. wenn ich es auf eine neue Variable schreibe klappt alles super nur sobalt ich diese Variable dann wieder auf die this.satz schreibe um denn ursprünglichen String zu verändern kommt dieser fehler
Kannst Du mal die entsprechenden Code-Schnipsel posten?
Oder meinst Du das etwa so
wenn Du
schreibst, geht es, aber beim direkten Schreiben von this.satz kommt der Fehler?
Wenn das der Fall ist - welches SDK verwendest Du?
Ich habe das mal ausprobiert und da läuft es ohne Probleme...
Oder meinst Du das etwa so
wenn Du
Code:
String bla = this.satz.substring(0,1); this.satz = bla;
Wenn das der Fall ist - welches SDK verwendest Du?
Ich habe das mal ausprobiert und da läuft es ohne Probleme...
Zuletzt bearbeitet:
Ghostryder
Lieutnant
ja genau dann kommt der Fehler! Was auch Merkwürdig ist, ist das dies nur passiert , wenn der String verkürzt wird. Damit meine ich wenn ich soetwas mache, dass der String nacher genausoviele Zeichen enthällt wie vorher funktioniert alles ohne Probleme :
String bla = this.satz.substring(0,1); this.satz = " " + bla;
Das sdk hat die Version 1.4.2_04 ich kann die Version auch nicht ändern da es die Vorgaben des Professors sind
String bla = this.satz.substring(0,1); this.satz = " " + bla;
Das sdk hat die Version 1.4.2_04 ich kann die Version auch nicht ändern da es die Vorgaben des Professors sind
Schädelkeks
Redshirt
- Mitglied seit
- 30.01.2005
- Beiträge
- 2
- Renomée
- 0
ich vermute das java den neuen substring per charweiser kopie erzeugt.
substring wird wohl als erstes den ziel string auf die richtige länge bringen, damit zerstört es dir dann deine ausgangsstring, deswegen wohl dann die index out of bounds fehler.
substring wird wohl als erstes den ziel string auf die richtige länge bringen, damit zerstört es dir dann deine ausgangsstring, deswegen wohl dann die index out of bounds fehler.
GevatterBaer
Grand Admiral Special
- Mitglied seit
- 24.12.2001
- Beiträge
- 2.846
- Renomée
- 1
Das hatten wir gerade an der Uni Strings sind unveränderbar und substring liefert einen neuen String zurück. Willst du den eigentlich String direkt verändern, musst du einen StringBuffer benutzen.
Also ich habe mal folgenden kurzen Schnipsel ausprobiert und bei mir gibt es keinen Fehler, weder unter 1.4.2.06, noch unter 1.5.0.01
Ausgabe:
Stimmt das ungefähr mit dem überein, wo bei Dir der Fehler kommt?
Code:
public class StringTest {
private String a;
public static void main(String[] arg) {
StringTest st = new StringTest();
st.a = "123456";
st.a = st.a.substring(1,3);
System.out.println(st.a);
}
}
Code:
23
Stimmt das ungefähr mit dem überein, wo bei Dir der Fehler kommt?
Ghostryder
Lieutnant
ja, nur das bei mir der String aus einer anderen Klasse kam und ich in dann im Konstruktor auf eine Variabel geschrieben habe
Ähnliche Themen
- Antworten
- 0
- Aufrufe
- 360
- Antworten
- 0
- Aufrufe
- 462
- Antworten
- 9
- Aufrufe
- 2K
- Antworten
- 5
- Aufrufe
- 3K
- Antworten
- 0
- Aufrufe
- 5K