Zeichenketten - Strings Flashcards
Zeichenketten(Strings)
° Folge von einzelnen Zeichen
° Anzahl der Zeichen in der Zeichenkette ist die Länge
- Konzeptuell ist die Längd unbegrenzt
- In einigen Kontexten (z.B. Datenbanken) müssen Zeichenketten jedoch eine fest definierte Maximallänge haben
° Zeichenkette sind notwendig in Anwendungen, in denen Texte (Prosa,Quelltexte..) verarbeitet werden
° In OO Sprache werden Zeichenkette als Objekte modelliert
String
° Zeichenketten werden durch die Klasse String unterstützt
- Definiert wie alle Klassen einen Typ
- Expliziter Bestandteil der Sprache -> es gibt einige Spezialbehandlungen für diesen Typen:
- String-Literale werden erkannt: String s = “Banane”;
- Infix-Operator + kann auch auf Strings angewendet werden und kann zwei miteinander verketten
° haben einen unveränderlichen Zustand
Escape-Sequenzen in String-Literalen
° Anführungszeichen: "
° Backslash:
° Zeilenumbruch: \n
Gleichheit von Strings
° Da Strings Java Objekte sind, vergleicht == nur Referenzen miteinander
° Zwei String-Objekte können dieselbe Zeichenkette repräsentieren, sind aber dennoch verschiedene String-Exemplare
° Strings müssen mit der equals-Methode verglichen werden
-> Problem: Datentypen String und Zeichenkette sind nicht gleichzusetzen
Compiler
° Der für Menschen lesbare Quelltext wird durch einen Scanner in eine Folge von Token zerlegt (lexikalische Analyse)
° Ein Parser erzeugt aus der Tokenfolge einen Syntaxbaum (Syntaxanalyse)
° Dieser wird analysiert und ggf. dekoriert
° Daraus erzeugt der Codegenerator das ausführbare Maschinenprogramm (bzw. Zielprogramm) und optimiert ggf
Token
° die kleinsten syntaktischen Einheiten einer Sprache
“Bezeichner”
s.matches(mengeGueltigerBezeichner)
° Methode matches ist in der Klasse String definiert und erhält als Parameter einen regulären Ausdruck als String
° regulärer Ausdruck beschreibt eine Menge von Zeichenketten
° matches gibt true genau dann, wenn die Zeichenkette s ein Element dieser Menge ist, ansonsten false
Reguläre Ausdrücke
° repräsentiert eine Menge von Zeichenketten
° “[0-9]{5}”
- [0-9]: gibt an, dass die Zahlen von 0-9 benutzt werden dürfen/sollen
- {5}: sagt aus, dass es fünfstellig sein darf
° Posttfix-Operator * sagt dass Operand beliebig oft auftreten kann (oder auch gar nicht)
° Posttfix-Operator + sagt dass es beliebige Wiederholung, aber mind. eine geben kann
° Posttfix-Operator ? sagt dass es entweder einmal oder gar nicht wiederholt wird
° . steht für ein beliebiges Zeichen