Der Datentyp String

Werbung
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
Herunterladen