Title: Folie 1
1Die Klasse String und ihre Methoden
2Deklaration und Initialisierung
OOP
String namename Java
String name Java
aber auch!!
String name new String()name Java
3Die wichtigsten Stringmethoden - Zusammenstellung
name.charAt(i) Liefert ein Zeichen aus einem String-Objekt,
name.substring(i,j) Liefert einen Teilstring aus einem String-Objekt,
name.length() Liefert die Anzahl der gültigen Zeichen in einem String-Objekt,
name.equals(xxx) Prüft ob der Inhalt des String-Objektes xxx ist,
name.compareTo(xxx) Prüft, ob der Inhalt des String-Objektes lexikalisch vor oder nach xxx kommt.
name.toUpperCase() Liefert einen String, in dem alle Zeichen von name als Grossbuchstaben vorliegen.
name.toLowerCase() Liefert einen String, in dem alle Zeichen von name als Kleinbuchstaben vorliegen.
Integer.parseInt(name) Enthält das String-Objekt Zeichen, die als int-Zahl interpretiert werden kann, so liefert diese Methode der Klasse Integer den int-Wert des ursprünglichen Strings.
4Die Methode charAt(i)
String text JAVA-IST-TOLL
J A V A - I S T - T O L L
0 1 2 3 4 5 6 7 8 9 10 11 12
J A V A - I S T - T O L L
0 1 2 3 4 5 6 7 8 9 10 11 12
char zeichen text.charAt(7)
System.out.println(zeichen)
Ausgabe das Zeichen T
5Die Methode substring(i,j)
Immer noch text JAVA-IST-TOLL
J A V A - I S T - T O L L
0 1 2 3 4 5 6 7 8 9 10 11 12
J A V A - I S T - T O L L
0 1 2 3 4 5 6 7 8 9 10 11 12
String teil text.substring(3,7)
Ausgabe A-IS
System.out.println(teil)
6Die Methode length()
Immer noch text JAVA-IST-TOLL
J A V A - I S T - T O L L
0 1 2 3 4 5 6 7 8 9 10 11 12
int laenge text.length()System.out.println(lae
nge)
Ausgabe 13
7Die Methode equals(xxx)
Wertesemantik Referenzsemantik
ab Prüft die Gleichheit der Werte von a und b Prüft die Gleichheit der Referenzen von a und b. Prüft nicht,ob die Objekte a und b inhaltlich gleich sind.
a.equals(b) Nicht vorhanden Prüft die inhaltliche Gleichheit von a und b
String text1 JAVA-IST-TOLLString text2
java-ist-toll
public class Gleich public static void
main(String args) int a 3 int b
3 boolean gleich a.equals(b)
System.out.println(gleich) //Error int
cannot be dereferenced
boolean gleich text1.equals(text2)
Die Variable gleich hat den Wert false!
8String - Referenz
import info1. public class EqualsDemo
public static void main (String args)
String text1 new String() text1
Console.in.readWord() String text2 new
String() text2 Console.in.readWord()
boolean gleich1 text1text2
System.out.println(gleich1) boolean
gleich2 text1.equals(text2)
System.out.println(gleich2)
import info1. public class EqualsDemo
public static void main (String args)
String text1 new String() text1
Console.in.readWord() String text2 new
String() text2 Console.in.readWord()
boolean gleich1 text1text2
System.out.println(gleich1) boolean
gleich2 text1.equals(text2)
System.out.println(gleich2)
import info1. public class EqualsDemo
public static void main (String args)
String text1 new String() text1
Console.in.readWord() String text2 new
String() text2 Console.in.readWord()
boolean gleich1 text1text2
System.out.println(gleich1) boolean
gleich2 text1.equals(text2)
System.out.println(gleich2)
import info1. public class EqualsDemo
public static void main (String args)
String text1 new String() text1
Console.in.readWord() String text2 new
String() text2 Console.in.readWord()
boolean gleich1 text1text2
System.out.println(gleich1) boolean
gleich2 text1.equals(text2)
System.out.println(gleich2)
In den String-Objekten mit den Bezeichnern text1
und text2 werden lediglich Adressen der
Speicherplätze abgelegt, an denen die eigentliche
Zeichenkette liegt. String-Objekte sind
Referenzen
9String Referenz - Speicheroptimierung
Der Compiler erkennt, dass die beiden Referenzen
auf die gleiche Zeichenkette zeigen. Zwecks
Optimierung des Speichers werden die beiden
Adressen, die in text1 und text2 abgelegt werden
gleichgesetzt. Wertevergleich liefert wie der
Referenzvergleich true.
public class EqualsDemo2 public static void
main (String args) String text1 new
String() text1 "Java" String
text2 new String() text2 "Java"
boolean gleich1 text1text2
System.out.println(gleich1) boolean
gleich2 text1.equals(text2)
System.out.println(gleich2)
10Die Methode compareTo(xxx)
String name1 ManfredString name2
Valentina
int i name1.compareTo(name2)
Der Inhalt von name1 kommt alphabetisch vor dem
Inhalt von name2, i bekommt einen negativen Wert
? Man kann Sortieren.
11Die Methoden toUpperCase() und toLowerCase()
String text Java-ist-toll
String textGross text.toUpperCase() String
textKlein text.toLowerCase()
System.out.println(textGross" "textKlein)
Ausgabe JAVA-IST-TOLL java-ist-toll
12Die Integer-Methode parseInt(xxx)
Wir sagen Der Operator ist überladen.Seine
Funktionalität wird damit kontextabhängig.
String text1 123String text2
456String text text1text2
Ausgabe 123456
Diese Pluszeichen haben unterschiedliche
Funktionalität.
System.out.println(text)
int zahl1 Integer.parseInt(text1)int zahl2
Integer.parseInt(text2)int zahl zahl1 zahl2
Ausgabe 579
System.out.println(zahl)