Eigener String

Ofof91

Aktives Mitglied
Bei der compareTo-Methode habe ich das Problem mit "ArrayIndexOutOfBoundsException", wenn die Strings unterschiedlich groß sind. Von dieser Methode aus kann ich aber auch nicht die Länge von char[] data beeinflussen.

Beispiel:


Hellom wird übergeben und mit Hellon(steht im char[] data drinnen) verglichen.
Ergebnis: Methode liefert "1" zurück, da n-m (110-109=1)...

Aber sobald ich sowas habe:
Hellom als Übergabe
und Hellonn, dann kommt der Fehler, da das Feld von Hellom die Länge 6 hat.

Hat jemand eine Idee wie man dies lösen könnte?
 
Zuletzt bearbeitet:
G

gst

Gast
Wie wäre es mit aktuellem Code? Du beschreibst Verhalten, welches überhaupt zum geposteten Code passt, z.B. compareTo, obwohl dein MyString nicht Comparable ist oder
Wenn ich im Hauptprogramm auf die einzelnen Konstruktoren zugreife, wird ohne System.out.. nichts ausgegeben
obwohl die ersten 3 Konstruktoren ein sysout enthalten. Niemand hat hier Bock auf Ratespielchen, welchen Code du lokal bei dir gerade testest.
 

Ofof91

Aktives Mitglied
Wie wäre es mit aktuellem Code? Du beschreibst Verhalten, welches überhaupt zum geposteten Code passt, z.B. compareTo, obwohl dein MyString nicht Comparable ist oder obwohl die ersten 3 Konstruktoren ein sysout enthalten. Niemand hat hier Bock auf Ratespielchen, welchen Code du lokal bei dir gerade testest.

Du hast die Frage nicht verstanden, diese bezieht sich nicht auf den aktuellen Code. Ist ja eine allgemeine Frage, um das Verständnisproblem aus dem Weg zu räumen.
 

Ofof91

Aktives Mitglied
Wie wäre es mit aktuellem Code? Du beschreibst Verhalten, welches überhaupt zum geposteten Code passt, z.B. compareTo, obwohl dein MyString nicht Comparable ist oder obwohl die ersten 3 Konstruktoren ein sysout enthalten. Niemand hat hier Bock auf Ratespielchen, welchen Code du lokal bei dir gerade testest.

Du hast die Frage nicht verstanden, diese bezieht sich nicht auf den aktuellen Code. Ist ja eine allgemeine Frage, um das Verständnisproblem aus dem Weg zu räumen.
 

Ofof91

Aktives Mitglied
Danke TT, komischerweise funktioniert es aber so auch. Ich habe es nur ganz am Anfang vor der toString-Methode geschrieben, dann nicht mehr.

Zur indexOf-Methode habe ich eine Frage:


"Hallo".indexOf("lo");

Wird bei diesem Beispiel zuerst überprüft, ob die Zeichenfolge "lo" überhaupt existiert? Und dann der Index von 'l' gesucht?
 
G

Gast2

Gast
Nein, das wäre ziemlich ineffizient. Wenn du festgestellt hast ob die Zeichenfolge existiert, dann kannst du auch direkt schon feststellen wo die existiert.
 

Timothy Truckle

Top Contributor
Danke TT, komischerweise funktioniert es aber so auch.
Falls ich mich unklar ausgedrückt habe:
Überschreiben von Methoden in erbenden Klassen funktioniert auch ohne die @Override-Annotation. Diese sorgt aber dafür, dass der Compiler weis, dass hier ein Override beabsichtigt ist und kann einen Fehlermeldung ausgeben, wenn die Signatur der Methode (also Name, Rückgabetyp oder Typen und Reihenfolge der Parameter) mit keiner Methode in einer der Oberklassen übereinstimmt.

Zur indexOf-Methode habe ich eine Frage:
Code:
"Hallo".indexOf("lo");
Wird bei diesem Beispiel zuerst überprüft, ob die Zeichenfolge "lo" überhaupt existiert? Und dann der Index von 'l' gesucht?
Ist das wichtig?
Für mich nicht, denn der Sinn von OOP ist ja gerade, dass ich mich nicht um Implementierungsdetails in Bibliotheken kümmern muss. Deshalb weis ich das nicht.
Aber wenn es Dich interessiert: Der Souce der JVM ist frei, schau nach.

bye
TT
 

Ofof91

Aktives Mitglied
Auch die indexOf-Methode funktioniert.

Ich hoffe nur, dass ich es richtig verstanden habe. Zur Sicherheit gebe ich noch ein Beispiel an, welches ich ausprobiert habe.

"Helnice".indexOf("nice")

Laut Angabe soll die Methode "-1" liefern, wenn der Substring nicht gefunden wurde. Hier wird er gefunden, und liefern tut er "3".

Stimmt das so?
 

Ofof91

Aktives Mitglied
//eliminate all leading and tailing white-spaces of the string; returns the number of white-spaces eliminated

public int trim()
{}

Diese Methode fehlt mir noch, ich weiß aber nicht was " leading and tailing white-spaces" sind?
 
G

Gast2

Gast
Du solltst alle white-spaces vorne und hinten eliminieren:
" hallo du da " => "hallo du da"
 

Neue Themen


Oben