Logo Logo
InfoHome Themen Projekte Links Software
Themen
JavaHamster
BlueJ
Java
Sprachelemente
Wrapper-Klassen
IOTools
Abstrakte Datentypen
Swing
Sortieren
HTML
XHTML
CSS
XML
Datenbanken
MySQL
Theoretische Informatik
PHP
Kara
Lego-Roboter
Algorithmen

Tastatureingaben in Java

Java ist eine komplexe Sprache - eine Sprache, in der man wahrscheinlich fast alles programmieren kann, wenn man nur weiß wie. Um den großen Umfang an Funktionalität und Plattformunabhängigkeit zur Verfügung zu stellen (welchen die Sprache nun einmal hat), haben die Entwickler viele Dinge abstrahiert. Diese wurden daraufhin in so allgemeiner Form implementiert, dass insbesondere Anfänger große Schwierigkeiten haben, sie zu benutzen. Leider ist die Eingabe eine davon.

Java erhält Eingaben von Daten über sogenannte Ströme (engl.: streams). Man kann sich diese Ströme am besten wie einen altmodischen Nachrichtenticker vorstellen. Auf einem schmalen Streifen kommen Nachrichten an, Zeichen für Zeichen aneinandergereiht. Welche Daten und Informationen auf diesen Streifen stehen, ist dem Gerät dabei egal - es handelt sich nur um eine Ansammlung von Zeichen. Es obliegt dem Leser, die Streifen an der richtigen Stelle abzureißen und die Daten auf dem Streifen zu interpretieren.

So oder so ähnlich können wir uns auch die Ströme in Java veranschaulichen. Ein Strom besteht aus nichts weiter als einer Ansammlung von Bits, die durch das Programm in irgendeiner Form interpretiert werden müssen. Hierbei kann die Quelle dieser Zeichen verschieden sein: eine Datei auf der Festplatte, ein Dokument aus dem Internet, oder eben die Eingabe von der Tastatur. Die Methodenaufrufe, welche dem Benutzer zur Verfügung stehen, sind in allen Fällen gleich.

Haben wir es jedoch geschafft dem Computer klarzumachen, dass wir als Eingabestrom die Tastatur verwenden wollen, so sind wir damit noch lange nicht am Ziel. Das Beste, was wir dem PC mit den vordefinierten Methoden nämlich entlocken können, ist eine Kette von Zeichen - ein String. Wir wollen im allgemeinen jedoch keine Strings, sondern int-Werte, double-Zahlen oder eventuell einzelne Zeichen. Zwar gibt es Möglichkeiten, aus unserem String diese zu extrahieren; hierfür brauchen wir jedoch meistens Wissen, das über das eines Anfängers hinausgeht. Um dem Abhilfe zu schaffen, wurden die IOTools geschrieben.

IOTools in Eclipse einbinden

Laden Sie sich zuerst das Paket Prog1Tools.zip herunter und speichern Sie die Datei auf Ihrem Rechner.

Das Paket wird nun folgendermaßen in ein Eclipse-Projekte eingebunden:

  • Klicken Sie mit der rechten Maustaste auf den Projektknoten im Package Explorer.
  • Wählen Sie den Eintrag "Properties" im Menü aus.
  • In dem linken Bereich der dann erscheinenden Dialogbox wählen Sie den Eintrag "Java Build Path" aus.
  • Klicken Sie den Reiter "Libraries" an.
  • Binde Sie über den Button "Add External JARs" die *.zip Datei in Ihr Projekt mit ein.

Anwendung

Wollen Sie die Klasse IOTools in Ihrem Programm verwenden, so müssen Sie in die erste Zeile ihres Programms nur noch

import Prog1Tools.IOTools;

einfügen.

Folgende Methoden sind dadurch unter anderem bereitgestellt:

  • Die Methode readInteger liest eine Zahl vom Typ int von der Tastatur ein und gibt diese als Ergebnis zurück. Um beispielsweise zwei ganze Zahlen von der Tastatur einzulesen und in den Variablen a und b zu sichern, genügt folgendes Programmstück:
    int a = IOTools.readInteger();
    int b = IOTools.readInteger();
  • Die Methode readDouble liest eine Zahl vom Typ double ein. Obiges Beispiel würde also für double-Zahlen wie folgt aussehen:
    double a = IOTools.readDouble();
    double b = IOTools.readDouble();
  • Die Methode readLong liest eine Zahl vom Typ long ein. Die Methoden readShort und readFloat tun dies für die Datentypen short und float.
  • Die Methode readLine liest eine ganze Textzeile (abgeschlossen durch den Druck auf die Eingabetaste).
  • Die Methode readString liest ein einzelnes "Textwort" von der Tastatur. Ein solches Textwort besteht aus einem String, der weder durch Leer- noch Tabulator- bzw. Zeilenende-Zeichen auseinandergerissen ist. Geben wir beispielsweise die Zeile
    Dies ist eine schoene Zeile
    ein und rufen den Befehl readString auf, so liefert er lediglich Dies als Ergebnis. Um an das nächste Wort zu gelangen, muss die Methode erneut aufgerufen werden.
  • Die Methode readChar liest ein einzelnes Zeichen, welches nicht gleich dem Leerzeichen, Zeilenendezeichen oder dem Tabulatorzeichen ist. Die Methode basiert hierbei auf der readString-Methode, das heißt, es werden Textworte eingelesen und in ihre einzelnen Komponenten aufgespalten.
  • Das Programmstück
    IOTools.readChar();
    char a=IOTools.readChar();
    int b=IOTools.readInteger();

    liefert bei der Eingabe abc123 456 also a='b' und b=456, da die Ziffern 123 noch zum ersten Textwort gehören.
  • Die Methode readBoolean liest einen boolschen Wert ein. Hierbei ist auf Groß- und Kleinschreibung zu achten; die Eingabe True kodiert beispielsweise keinen Wert vom Typ boolean. Es muss vielmehr true heißen. Wie wir in obigen Beispielen gesehen haben, können auch mehr als eine einzulesene Information pro Zeile eingegeben werden (man muss sie lediglich durch Leerzeilen trennen). Hierbei muss man natürlich auf die Reihenfolge der Eingaben achten. Der Befehl readInteger wird bei der Eingabe
    Ich gebe jetzt einmal 13 ein.
    als Ergebnis den Wert 13 zurückgeben, da dies die erste gültige Ganzzahl ist. Die zuvor stehenden Textworte werden verworfen.

Anwendungsbeispiel

import Prog1Tools.IOTools;

public class IOTest {

  public static void main(String[] args) {

    String eingabewort = IOTools.readLine();

    System.out.println(eingabewort);

  }

}

» drucken: pdf | html

© 2004-2024 M. Blanke · Ursulaschule · Kleine Domsfreiheit 11-18 · 49074 Osnabrück