Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

FH-Hof Verwaltung von Zeichenketten Richard Göbel.

Ähnliche Präsentationen


Präsentation zum Thema: "FH-Hof Verwaltung von Zeichenketten Richard Göbel."—  Präsentation transkript:

1 FH-Hof Verwaltung von Zeichenketten Richard Göbel

2 FH-Hof Zeichenketten als Arrays Direkter Ansatz char [] str; str = new char[4]; str[0] = 'T'; str[1] = 'e'; str[2] = 's'; str[3] = 't'; Vereinfachter Ansatz char [] str = "Test"; Länge der Zeichenkette Länge des Arrays Endzeichen (z.B. 00h in C) zusätzliches Feld

3 FH-Hof Konkatenation von Zeichenketten Deklaration char [] s1 = new char[4], char [] s2 = new char[7]; Anweisungen int gesamt = s1.length + s2.length; char [] s3 = new char[gesamt]; for (int i = 0; i < s1.length; i++) s3[i] = s1[i]; for (int i = 0; i < s2.length; i++) s3[i+s1.length] = s2[i];

4 FH-Hof Vergleich von Zeichenketten Deklaration char [] s1 = new char[5], char [] s2 = new char[5]; Direkter Vergleich "s1 == s2" ist falsch! Korrekter Ansatz bool result = true; if (s1.length == s2.length for (int i = 0; i < s1.length; i++) if (s1[i] != s2[i]) { result = false; break; } else result = false;

5 FH-Hof Teil einer Zeichenkette Deklaration char [] s = new char[10], int start, ende; Anweisungen int laenge = ende – start + 1; char [] r = new char[laenge]; for (int i = start; i <= ende; i++) r[i-start] s[i];

6 FH-Hof Datentyp String - Definition Deklaration des Datentyps type String { char[] content; } Definition von Funktionen, z.B.: String append(String s, char c) { String r = new String(). r.s = new char[s.content.length + 1]; for (int i = 0; i < s.content.length; i++) r.content[i] = s.content[i]; r.content[s.content.length] = c; return r; } … sowie Funktionen für die bereits diskutierten Operationen

7 FH-Hof Datentyp String - Effizienz Einlesen einer Zeichenkette von einer Datei String s; s.content = new char[0]; char c; while (…) { c = lies Zeichen von Datei; s = append(s, c); } Aufwand in Abhängigkeit von der Größe der Datei?

8 FH-Hof Datentyp StringBuffer - Kapazität Deklaration des Datentyps type StringBuffer { char content = char[16]; size = 0; } Kapazität vergrößern void capacity(StringBuffer s, int n) { if (n <= s.content.length) return; char r[] = new char[n];. for (int i = 0; i < s.content.length; i++) r[i] = s.content[i]; s.content = r; }

9 FH-Hof Datentyp StringBuffer – Funktion "append" Programmcode void append(StringBuffer s, char c) { if (s.content.length == s.size) capacity(s, s.size*2); s.content[s.size] = c; size++; } Aufwand? Vor- und Nachteile?


Herunterladen ppt "FH-Hof Verwaltung von Zeichenketten Richard Göbel."

Ähnliche Präsentationen


Google-Anzeigen