Einstieg in die Informatik mit Java

Ähnliche Dokumente
Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

System.out.println("TEXT");

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Zeichenketten. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java. 16.

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Schöner Programmieren

Hüllklassen. Gerd Bohlender. 25. Juni Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java

Eingabe und Ausgabe in Java. Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien

Interaktive Programme mit Scanner

Einstieg in die Informatik mit Java

Vererbung, Polymorphie

Selbststudium OOP6 & ALG Programmieren 1 - H1103 Felix Rohrer

Einstieg in die Informatik mit Java

Programmieren I + II Regeln der Code-Formatierung

1 Fehler-Objekte: Werfen, Fangen, Behandeln

Wo sind wir? Übersicht lexikale Struktur von Java

Algorithmen und Datenstrukturen II

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Programmieren I + II Regeln der Code-Formatierung

Einstieg in die Informatik mit Java

Ausdrucksbäume in verschiedenen Darstellungen

Einstieg in die Informatik mit Java

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

1 Klassen anlegen und Objekte erzeugen

5 Grundlagen der Java-Syntax

Institut für Programmierung und Reaktive Systeme. Java 3. Markus Reschke

1 Klassen anlegen und Objekte erzeugen

Einstieg in die Informatik mit Java

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 4

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Beispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme

Einstieg in die Informatik mit Java

Kapitel 9. Ein- und Ausgabe. 9.1 Ströme

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.

3. Grundlegende Sprachkonstruktionen imperativer Programme

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik

Aufgabe: Hinweise zu der Farbwahl der Texte/Wörter: Orange ist angegeben, wo etwas ergänzt werden soll.

Vorkurs Informatik WiSe 16/17

Ausnahmebehandlung. Ausnahmen werfen (auslösen) Eigene Ausnahmen definieren. Ausnahmen abfangen. Ausnahmen definieren

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.

Programmieren I. Dateien: Allgemeines. Vorlesung 10. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

II.1.1. Erste Schritte - 1 -

Einführung in C. EDV1-04C-Einführung 1

C# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services

Streams. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Repetitorium Informatik (Java)

Dateien. DVG Dateien 1

Programmierpraktikum Java Entdecken Merkblatt 2

6. Iteration (Schleifenanweisungen)

Methoden und Wrapperklassen

Einstieg in die Informatik mit Java

6. Iteration (Schleifenanweisungen)

Grundlagen der Programmierung Prof. H. Mössenböck. 2. Einfache Programme

Programmieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik

Einstieg in die Informatik mit Java

15 Fehlerobjekte: Werfen, Fangen, Behandeln

15 Fehlerobjekte: Werfen, Fangen, Behandeln. Idee. Fehlerklassen. Fehlerklassen

Beuth Hochschule Einführende Gentle-Programme WS12/13, S. 1

15 Fehlerobjekte: Werfen, Fangen, Behandeln

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Aufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht:

Einstieg in die Informatik mit Java

2 Eine einfache Programmiersprache

Java - Programmierung - Prozedurale Programmierung 1

Übung Informatik I - Programmierung - Blatt 3

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 23

Objektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer

Javakurs zu Informatik I. Henning Heitkötter

Objektorientierte Programmierung OOP Programmieren mit Java

Datenbanksysteme 2 Fachbereich Angewandte Informatik WS 11/12 Dipl.-Inf. Christian Pape. 6. Übung

Tag 4 Repetitorium Informatik (Java)

2 Teil 2: Nassi-Schneiderman

Programmieren in Java

Dateien: Allgemeines Dateien lesen Beispiel: CSV-Daten Filter Ausgabe in Dateien. Programmieren I. Martin Schultheiß

Java Cheatsheet. Mehrzeiliger Kommentar (beginnt mit /* und endet mit */)

Soll die Programm-Ausführung nicht beendet werden, muss der Fehler abgefangen werden. NumberFormatException

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Kapitel 3. Programmierkurs. Arten von Anweisungen. 3.1 Was sind Anweisungen?

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Transkript:

1 / 17 Einstieg in die Informatik mit Java String Tokenizer Gerd Bohlender Institut für Angewandte und Numerische Mathematik

Gliederung 2 / 17 1 Überblick Tokenizer 2 StringTokenizer 3 Verwendung von String.split 4 Verwendung von StreamTokenizer

Gliederung 3 / 17 1 Überblick Tokenizer 2 StringTokenizer 3 Verwendung von String.split 4 Verwendung von StreamTokenizer

4 / 17 Überblick In diesem Kapitel wird beschrieben, wie ein String in zusammengehörige Einzelteile (Englisch: Token ) zerlegt werden kann. Beispiel: 2 Zeilen mit 6 Tokens (Zahlen) 111 222 333 +444-5.5e3 6 Statt Leerzeichen können auch beliebige andere Trennzeichen verwendet werden. Beispiel: 2 Tokens (Haupt- und Nebensatz) Zwei Tokens, welche durch Komma getrennt werden.

Gliederung 5 / 17 1 Überblick Tokenizer 2 StringTokenizer 3 Verwendung von String.split 4 Verwendung von StreamTokenizer

StringTokenizer Eine Zeichenkette kann in mehrere Tokens zerlegt werden. Tokens sind standardmäßig durch ein oder mehrere Whitespace-Zeichen getrennt: Leerzeichen, Tabulator (\t), neue Zeile (\n, \r), Formfeed (\f). Die Trennzeichen werden standardmäßig überlesen. Ein StringTokenizer wird per Konstruktor aus einem String erzeugt: String s = "Ein String aus 5 Tokens."; StringTokenizer st = new StringTokenizer (s); Solange noch Tokens verfügbar sind, können diese mit Hilfe der Methode nexttoken() beschafft werden. Mit der Methode hasmoretokens() kann geprüft werden, ob noch Tokens vorliegen. 6 / 17

Beispiel: StringTokenizer 7 / 17 Beispiel import java. u t i l. ;... S t r i n g s = Hallo Welt! ; S t r ingtokenizer s t = new StringTokenizer ( s ) ; while ( s t. hasmoretokens ( ) ) { System. out. p r i n t l n ( s t. nexttoken ( ) ) ; }... Ergebnis: Hallo Welt!

Sonderfälle StringTokenizer Andere Trennzeichen Sollen Tokens nicht mit den oben erwähnten Zeichen getrennt werden, so kann eine Liste der Trennzeichen als zweiter Parameter beim Konstruktor angegeben werden! String s = "Ein String. Zwei Sätze."; StringTokenizer st = new StringTokenizer (s, "."); Tokens: Ein String Zwei Sätze 8 / 17

Sonderfälle StringTokenizer 9 / 17 Behandlung der Trennzeichen Sollen die Trennzeichen ebenfalls als Tokens betrachtet werden, dann kann true als dritter Parameter beim Konstruktor angegeben werden! Jedes Trennzeichen ist dann ein Token der Länge 1. String s = "4(!) Tokens"; // beachte: 2 Leerzeichen! StringTokenizer st = new StringTokenizer(s," ",true); Tokens (beachte: 2 Leerzeichen!): 4(!) Tokens

10 / 17 Sonderfälle String Tokenizer Weitere Methoden: counttokens() liefert die Anzahl der noch folgenden Tokens, ohne sie per nexttoken() zu lesen; der Zustand des Tokenizers bleibt also unverändert. nexttoken(delim) ändert die Trennzeichen auf die Zeichen im String delim und führt danach nexttoken() aus. hasmoreelements() und nextelement() arbeiten ähnlich wie hasmoretokens() und nexttoken(), liefern aber keinen String sondern ein Ergebnis vom Typ Object.

Gliederung 11 / 17 1 Überblick Tokenizer 2 StringTokenizer 3 Verwendung von String.split 4 Verwendung von StreamTokenizer

12 / 17 String.split Eine alternative Variante ist die Verwendung der Methode split(regex) aus der Klasse String. Das Ergebnis ist ein Feld von Strings. Hierbei stellt der String regex einen regulären Ausdruck zur Beschreibung der Trennzeichen dar, der zahlreiche spezielle Codierungen für Zeichenfolgen enthalten kann. Eine Übersicht findet man in der Java-Dokumentation bei String.split.

13 / 17 String.split, reguläre Ausdrücke Einige Beispiele: [abc] eines der Zeichen a, b, c [a-z]* beliebig viele Kleinbuchstaben ( bedeutet beliebige Wiederholung des vorigen Elements, inklusive 0-mal) [a-za-z]+ beliebig viele Groß- oder Kleinbuchstaben (+ bedeutet beliebige Wiederholung des vorigen Elements, mindestens einmal). jedes beliebige Zeichen \. ein Punkt \d eine Ziffer 0 bis 9 \s ein Whitespacezeichen (Leerzeichen, Tabulator, neue Zeile, Formfeed) \w ein Wortzeichen (Buchstabe, Ziffer, Unterstrich _)

Verwendung von String.split Darstellung des regulären Ausdrucks Beachte: da der reguläre Ausdruck als String angegeben wird, muss z.b. ein Backslashzeichen \ durch ein weiteres Backslashzeichen als Sonderzeichen gekennzeichnet werden! Beispiel für regulären Ausdruck S t r i n g s t r = A77B345C D ; S t r i n g [ ] token = s t r. s p l i t ( \\d+ ) ; / / eine oder mehrere Z i f f e r n Ergibt die Tokens: "A", "B", "C D" Beispiel für regulären Ausdruck S t r i n g [ ] token = a, b, c.. s p l i t ( [, \ \. ]+ ) ; / / e i n oder mehrere Kommata, Punkte, Leerzeichen Ergibt die Tokens: "a", "b", "c" 14 / 17

Gliederung 15 / 17 1 Überblick Tokenizer 2 StringTokenizer 3 Verwendung von String.split 4 Verwendung von StreamTokenizer

16 / 17 Verwendung von StreamTokenizer Ein StreamTokenizer liest Tokens von einem Eingabestrom. Dies ist meistens ein File vom Typ BufferedReader, es kann aber auch ein String sein mittels StringReader. Hierbei wird zunächst von nexttoken() nur ein Code zurückgeliefert, der angibt ob eine Zahl, ein String, das Dateiende oder das Zeilenende gelesen wurden. Eine Zahl bzw. ein String können dann ggf. aus der Komponente nval bzw. sval des Tokenizers gelesen werden. Es gibt zahlreiche Möglichkeiten, die Generierung von Tokens zu beeinflussen (Berücksichtigung von Kommentaren, Stringkonstanten, usw.) nexttoken() kann eine IOException auslösen und muss daher z.b. in einem try...catch Block stehen.

Verwendung von StreamTokenizer, Beispiel 17 / 17 import java. i o. ; public class StreamTokenizerDemo { } public s t a t i c void main ( String [ ] args ) { Reader r = new StringReader ( aha 123 nanu 1.5 ) ; StreamTokenizer st = new StreamTokenizer ( r ) ; i n t token ; S t r i n g s ; Number n ; do { t r y { / / naechsten Token besorgen token = s t. nexttoken ( ) ; } catch ( IOException ioe ) { System. out. p r i n t l n ( Lesefehler ) ; token = 0; / / bei Fehler : Ersatzcode } i f ( token == StreamTokenizer.TT NUMBER) { n = s t. nval ; / / ggf. Zahl v e r a r b e i t e n System. out. p r i n t l n ( Zahl gelesen : + n ) ; } i f ( token == StreamTokenizer.TT WORD) { s = st. sval ; / / ggf. S t r i n g v e r a r b e i t e n System. out. p r i n t l n ( S t r i n g gelesen : + s ) ; } } while ( token!= StreamTokenizer. TT EOF ) ; / / a l l e Tokens gelesen? System. out. p r i n t l n ( A l l e Tokens wurden gelesen. ) ; }