1 / 13 Einstieg in die Informatik mit Java Zeichenketten Gerd Bohlender Institut für Angewandte und Numerische Mathematik
Gliederung 2 / 13 1 Zeichenketten 2 Erzeugen von Zeichenketten 3 Operatoren für Zeichenketten 4 Methoden zur Bearbeitung von Zeichenketten
Gliederung 3 / 13 1 Zeichenketten 2 Erzeugen von Zeichenketten 3 Operatoren für Zeichenketten 4 Methoden zur Bearbeitung von Zeichenketten
4 / 13 Zeichenketten Im Gegensatz zu C sind Zeichenketten in Java Objekte und keine char Felder. Dabei kann zwischen konstanten und variablen Zeichenketten unterschieden werden. Konstante Zeichenketten sind Objekte der Klasse String, variable Zeichenketten sind Objekte der Klasse StringBuffer.
Gliederung 5 / 13 1 Zeichenketten 2 Erzeugen von Zeichenketten 3 Operatoren für Zeichenketten 4 Methoden zur Bearbeitung von Zeichenketten
Erzeugen von Zeichenketten 6 / 13 Zeichenketten lassen sich durch eine direkte Zuweisung oder durch Aufruf des Konstruktors der Klasse String erzeugen.
Erzeugen von Zeichenketten 6 / 13 Zeichenketten lassen sich durch eine direkte Zuweisung oder durch Aufruf des Konstruktors der Klasse String erzeugen. Beispiel S t r i n g s1 = aha ; S t r i n g s2 = new S t r i n g ( aha ) ;
6 / 13 Erzeugen von Zeichenketten Zeichenketten lassen sich durch eine direkte Zuweisung oder durch Aufruf des Konstruktors der Klasse String erzeugen. Beispiel S t r i n g s1 = aha ; S t r i n g s2 = new S t r i n g ( aha ) ; Achtung String ist konstant, Referenz ist variabel: S t r i n g s = aha ; s = nanu ;
Erzeugen von Zeichenketten 6 / 13 Zeichenketten lassen sich durch eine direkte Zuweisung oder durch Aufruf des Konstruktors der Klasse String erzeugen. Beispiel S t r i n g s1 = aha ; S t r i n g s2 = new S t r i n g ( aha ) ; Achtung String ist konstant, Referenz ist variabel: S t r i n g s = aha ; s = nanu ; s s aha nanu
Erzeugen von Zeichenketten 7 / 13 Zeichenfelder lassen sich nur durch Übergabe an den Konstruktor der Klasse String in Zeichenketten umwandeln. Eine direkte Zuweisung ist nicht erlaubt.
Erzeugen von Zeichenketten 7 / 13 Zeichenfelder lassen sich nur durch Übergabe an den Konstruktor der Klasse String in Zeichenketten umwandeln. Eine direkte Zuweisung ist nicht erlaubt. Objekte (insbesondere Felder und Instanzen von Klassen) können mit Hilfe der Methode tostring() in eine Zeichenkette umgewandelt werden; hierbei wird allerdings nur eine wenig aussagekräftige interne Darstellung des Objekts erzeugt.
Erzeugen von Zeichenketten 7 / 13 Zeichenfelder lassen sich nur durch Übergabe an den Konstruktor der Klasse String in Zeichenketten umwandeln. Eine direkte Zuweisung ist nicht erlaubt. Objekte (insbesondere Felder und Instanzen von Klassen) können mit Hilfe der Methode tostring() in eine Zeichenkette umgewandelt werden; hierbei wird allerdings nur eine wenig aussagekräftige interne Darstellung des Objekts erzeugt. Beliebige Typen können mit Hilfe der Stringkonkatenation in Zeichenketten umgewandelt werden.
Erzeugen von Zeichenketten 7 / 13 Zeichenfelder lassen sich nur durch Übergabe an den Konstruktor der Klasse String in Zeichenketten umwandeln. Eine direkte Zuweisung ist nicht erlaubt. Objekte (insbesondere Felder und Instanzen von Klassen) können mit Hilfe der Methode tostring() in eine Zeichenkette umgewandelt werden; hierbei wird allerdings nur eine wenig aussagekräftige interne Darstellung des Objekts erzeugt. Beliebige Typen können mit Hilfe der Stringkonkatenation in Zeichenketten umgewandelt werden. Beispiel char [ ] c a r r a y = { a, h, a } ; S t r i n g s3 = new S t r i n g ( c a r r a y ) ; / / e r g i b t aha i n t i = 123; S t r i n g s4 = + i ; / / e r g i b t 123
Gliederung 8 / 13 1 Zeichenketten 2 Erzeugen von Zeichenketten 3 Operatoren für Zeichenketten 4 Methoden zur Bearbeitung von Zeichenketten
9 / 13 Operatoren für Zeichenketten Achtung Die Umwandlung von Zeichenketten in ganze Zahlen bzw. Gleitkomazahlen geschieht über spezielle Hüllklassen!
9 / 13 Operatoren für Zeichenketten Achtung Die Umwandlung von Zeichenketten in ganze Zahlen bzw. Gleitkomazahlen geschieht über spezielle Hüllklassen! Die Stringkonkatenation + verknüpft zwei Zeichenketten miteinander.
9 / 13 Operatoren für Zeichenketten Achtung Die Umwandlung von Zeichenketten in ganze Zahlen bzw. Gleitkomazahlen geschieht über spezielle Hüllklassen! Die Stringkonkatenation + verknüpft zwei Zeichenketten miteinander. Die Verknüpfung ist auch mit Hilfe des kombinierten Zuweisungsoperators += möglich.
9 / 13 Operatoren für Zeichenketten Achtung Die Umwandlung von Zeichenketten in ganze Zahlen bzw. Gleitkomazahlen geschieht über spezielle Hüllklassen! Die Stringkonkatenation + verknüpft zwei Zeichenketten miteinander. Die Verknüpfung ist auch mit Hilfe des kombinierten Zuweisungsoperators += möglich. Ein Test auf Gleichheit bzw. Ungleichheit der Referenzen kann mit Hilfe von == bzw.!= durchgeführt werden. Es findet dabei kein inhaltlicher Vergleich statt. Trotzdem kann dieser gutgehen, da der Kompiler nach Möglichkeit die gleiche Zeichenkette nur einmal abspeichert.
9 / 13 Operatoren für Zeichenketten Achtung Die Umwandlung von Zeichenketten in ganze Zahlen bzw. Gleitkomazahlen geschieht über spezielle Hüllklassen! Die Stringkonkatenation + verknüpft zwei Zeichenketten miteinander. Die Verknüpfung ist auch mit Hilfe des kombinierten Zuweisungsoperators += möglich. Ein Test auf Gleichheit bzw. Ungleichheit der Referenzen kann mit Hilfe von == bzw.!= durchgeführt werden. Es findet dabei kein inhaltlicher Vergleich statt. Trotzdem kann dieser gutgehen, da der Kompiler nach Möglichkeit die gleiche Zeichenkette nur einmal abspeichert. Besser ist der Vergleich mit equals() oder compareto(), siehe unten.
Operatoren für Zeichenketten 10 / 13 Beispiel S t r i n g s5 = W i l l i ; s5 += am ; / / e r g i b t s5 = William S t r i n g s6 = Anja ; s7 = Anja ;
Operatoren für Zeichenketten 10 / 13 Beispiel S t r i n g s5 = W i l l i ; s5 += am ; / / e r g i b t s5 = William S t r i n g s6 = Anja ; s7 = Anja ; s6 Anja s7
Gliederung 11 / 13 1 Zeichenketten 2 Erzeugen von Zeichenketten 3 Operatoren für Zeichenketten 4 Methoden zur Bearbeitung von Zeichenketten
Methoden zur Bearbeitung von Zeichenketten 12 / 13 Die folgenden Methoden erfordern allesamt die objektorientierte Schreibweise: Syntax Variable.Methode (Argumente);
Methoden zur Bearbeitung von Zeichenketten 12 / 13 Die folgenden Methoden erfordern allesamt die objektorientierte Schreibweise: Syntax Variable.Methode (Argumente); Methode Beschreibung Argumenttyp Ergebnistyp equals(s) Vergleicht Zeichenketten String boolean inhaltlich miteinander. length() Ermittelt Länge int der Zeichenkette. charat(i) Greift ein Zeichen raus. int char substring(i,j) Greift Teilzeichenkette raus i: int String (Zeichen i bis j-1) j: int replace(c1,c2) Ersetzt Zeichen c1 c1: char String durch Zeichen c2. c2: char indexof(s) Liefert Index eines Zeichens char, String int oder einer Teilzeichenkette bzw. -1, falls nicht vorhanden. compareto(s) Vergleicht Zeichenketten String int in lexikalischer Reihenfolge.
Methoden zur Bearbeitung von Zeichenketten 13 / 13 Beispiel S t r i n g s8 = Alex ; S t r i n g s9 = Alex ; i f ( s8. equals ( s9 ) )... / / e r g i b t t r u e S t r i n g s10 = Achtung ; i n t dim = s10. l e n g t h ( ) ; / / e r g i b t dim=7 S t r i n g s11 = s10. s u b s t r i n g ( 3, 5 ) ; / / e r g i b t s11 = tu S t r i n g s12 = b l a b l a ; S t r i n g s13 = s12. replace ( a, u ) ; / / e r g i b t s13 = b l u b l u i n t i = s13. indexof ( b ) ; / / e r g i b t i =0 i n t j = s13. indexof ( blu ) ; / / e r g i b t j =0 S t r i n g s14 = Anita ; i f ( s8. compareto ( s14) <0)... / / e r g i b t t r u e
Methoden zur Bearbeitung von Zeichenketten 13 / 13 Beispiel S t r i n g s8 = Alex ; S t r i n g s9 = Alex ; i f ( s8. equals ( s9 ) )... / / e r g i b t t r u e S t r i n g s10 = Achtung ; i n t dim = s10. l e n g t h ( ) ; / / e r g i b t dim=7 S t r i n g s11 = s10. s u b s t r i n g ( 3, 5 ) ; / / e r g i b t s11 = tu S t r i n g s12 = b l a b l a ; S t r i n g s13 = s12. replace ( a, u ) ; / / e r g i b t s13 = b l u b l u i n t i = s13. indexof ( b ) ; / / e r g i b t i =0 i n t j = s13. indexof ( blu ) ; / / e r g i b t j =0 S t r i n g s14 = Anita ; i f ( s8. compareto ( s14) <0)... / / e r g i b t t r u e Es gibt noch viele weitere Methoden (siehe auch Webseiten der Vorlesung und Java Dokumentation).