1. Felder und Strings
Datentypen für Strings
Der Datentyp String
Zeichenketten können in Java mit dem Referenzdatentyp String dargestellt werden.
Zeichenketten vom Typ String haben die folgenden wesentlichen Eigenschaften:
☞ Die Länge eines Strings steht mit seiner Erzeugung fest und kann nachträglich
nicht geändert werden.
☞ Der Inhalt des Strings kann nicht geändert werden.
• Ein String ist eigentlich ein Objekt der Klasse java.lang.String.
• Für die Erzeugung kann die Literaldarstellung oder der new-Operator verwendet
werden.
Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 08
32
1. Felder und Strings
Datentypen für Strings
Varianten zur Erzeugung von String-Objekten:
String s1 = "abc";
String s2 = new String( "abc" );
char[] data = { ’a’, ’b’, ’c’ };
String s3 = new String( data );
byte[] b = { 97, 98, 99 };
String s4 = new String( b );
String s5 = new String( s4 );
Was liefert s1 == s2 oder s5 == s4?
Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 08
33
1. Felder und Strings
Datentypen für Strings
Die Klasse String beinhaltet Methoden zum
• Zugriff auf einzelne Zeichen der Zeichenkette,
charAt(int index)
• Vergleich von Zeichenketten,
compareTo(String vergleichsString) und equals(String vergleichsString)
• Suchen von Teil-Zeichenketten,
indexOf(String teilString)
• Herausgreifen von Teil-Zeichenketten und
substring(int von) und substring(int von, int bis)
• Wandeln von Groß- in Kleinbuchstaben (und umgekehrt).
toLowerCase() und toUpperCase()
Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 08
34
1. Felder und Strings
Datentypen für Strings
String s1 = "Weihnachten";
String s2 = "Weihnachten";
String s3 = "WEIHNACHTEN";
System.out.println(s1.charAt(4) );
System.out.println(s1.compareTo(s2) );
System.out.println(s1.compareTo(s3) );
System.out.println(s1.equals(s2) );
System.out.println(s1.indexOf("ach"));
System.out.println(s1.substring(3));
System.out.println(s1.substring(3,7));
System.out.println(s1.toUpperCase());
Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 08
//
//
//
//
//
//
//
//
Ausgabe: n
Ausgabe: 0
Ausgabe: 1
Ausgabe: true
Ausgabe: 5
Ausgabe: hnachten
Ausgabe: hnac
Ausgabe:WEIHNACHTEN
35
1. Felder und Strings
Datentypen für Strings
Der Datentyp StringBuffer
• Die Klasse StringBuffer erlaubt es uns, mit veränderbaren ZeichenkettenObjekten zu arbeiten.
• Wir können beispielsweise zusätzliche Zeichen hinzufügen oder entfernen, ohne
das jeweils ein neues Objekt erzeugt wird.
• Während
String str = "";
for (int i=1; i<=500 ; i++ )
str = str + "x";
insgesamt 500 neue String-Objekte erzeugt, wird in den Zeilen
StringBuffer buf = new StringBuffer();
for (int i=1; i<=500 ; i++ )
buf.append("x");
nur ein einziges StringBuffer-Objekt erzeugt und verwendet.
Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 08
36
1. Felder und Strings
Datentypen für Strings
• Vorteil: effizienter
• Nachteil: komplexere Programmierung
• Konstruktoren von StringBuffer:
public StringBuffer()
public StringBuffer(String s)
• Einige Methoden:
– Aktuelle Länge: length()
– Etwas an die aktuelle Zeichenkette anhängen: verschiedene Varianten von
append, z.B.
StringBuffer append(int i)
– Einfügen an einer bestimmten Stelle: verschiedene Varianten von insert, z.B.
StringBuffer insert(int offset, int i)
– Teilstring löschen:
StringBuffer delete(int von, int bis)
• Genaueres erfahren Sie in der API-Dokumentation.
Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 08
37