Package de.pakad

Class StdIn

java.lang.Object
de.pakad.stdtools.StdIn

public class StdIn extends Object
StdIn stellt statische Hilfsmethoden zum Lesen von der Standardeingabe bereit.

Die Klasse kapselt einen Scanner und bietet komfortable Methoden zum Lesen einzelner Tokens, einzelner Zeichen, ganzer Zeilen sowie der gesamten Eingabe.

Wichtiger Hinweis zur Nutzung

Die Lesemethoden sind in Gruppen organisiert. Um unerwartete Effekte durch wechselnde Delimiter-Einstellungen zu vermeiden, sollten Methoden unterschiedlicher Gruppen nicht beliebig gemischt werden:

Zeichencodierung: UTF-8, Locale: IO.STANDARDLOCALE.

Java-Version: 17 oder höher

Author:
Karsten Brodmann (kb@punkt-akademie.de)
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    Prüft, ob noch ein weiteres Zeichen (inkl.
    static boolean
    Prüft, ob noch eine weitere Zeile verfügbar ist.
    static boolean
    Prüft, ob noch ein weiteres Token (nicht nur Trennzeichen) verfügbar ist.
    static String
    Liest die gesamte verbleibende Standardeingabe und gibt sie als String zurück.
    static boolean
    Liest das nächste Token und interpretiert es als boolean.
    static byte
    Liest das nächste Token und interpretiert es als byte.
    static byte[]
    Liest alle verbleibenden Tokens und interpretiert sie als byte-Werte.
    static char
    Liest das nächste Zeichen (inkl.
    static char[]
    Liest die gesamte verbleibende Eingabe (bis EOF) und liefert sie als char-Array zurück.
    static double
    Liest das nächste Token und interpretiert es als double.
    static double[]
    Liest alle verbleibenden Tokens und interpretiert sie als double-Werte.
    static float
    Liest das nächste Token und interpretiert es als float.
    static float[]
    Liest alle verbleibenden Tokens und interpretiert sie als float-Werte.
    static int
    Liest das nächste Token und interpretiert es als int.
    static int[]
    Liest alle verbleibenden Tokens und interpretiert sie als int-Werte.
    static String
    Liest die nächste Zeile und gibt sie ohne Zeilentrenner zurück.
    static String[]
    Liest alle verbleibenden Zeilen der Eingabe und liefert sie als Array.
    static char[]
    Liest eine Zeile (interaktiv) und liefert sie als char-Array zurück.
    static char[]
    Liest eine Zeile (interaktiv) und liefert sie als char-Array zurück.
    static double
    Liest eine Zeile (interaktiv) und liefert das erste Token als double zurück.
    static double
    Liest eine Zeile (interaktiv) und liefert das erste Token als double zurück.
    static double[]
    Liest eine Zeile (interaktiv) und interpretiert sie als Folge von double-Werten.
    static double[]
    Liest eine Zeile (interaktiv) und interpretiert sie als Folge von double-Werten.
    static int
    Liest eine Zeile (interaktiv) und liefert das erste Token als int zurück.
    static int
    readlnInt(String prompt)
    Liest eine Zeile (interaktiv) und liefert das erste Token als int zurück.
    static int[]
    Liest eine Zeile (interaktiv) und interpretiert sie als Folge von int-Werten.
    static int[]
    Liest eine Zeile (interaktiv) und interpretiert sie als Folge von int-Werten.
    static String
    Liest eine Zeile (interaktiv) und liefert sie als String zurück.
    static String
    Liest eine Zeile (interaktiv) und liefert sie als String zurück.
    static String
    Liest eine Zeile (interaktiv) und liefert das erste Token zurück.
    static String
    Liest eine Zeile (interaktiv) und liefert das erste Token zurück.
    static String[]
    Liest eine Zeile (interaktiv) und liefert sie als Array von Token zurück.
    static String[]
    Liest eine Zeile (interaktiv) und liefert sie als Array von Token zurück.
    static long
    Liest das nächste Token und interpretiert es als long.
    static long[]
    Liest alle verbleibenden Tokens und interpretiert sie als long-Werte.
    static short
    Liest das nächste Token und interpretiert es als short.
    static short[]
    Liest alle verbleibenden Tokens und interpretiert sie als short-Werte.
    static String
    Liest das nächste Token und gibt es als String zurück.
    static String
    Liest das nächste Token und gibt es als String zurück.
    static String[]
    Liest alle verbleibenden Tokens der Eingabe und liefert sie als Array.
    static void
    Setzt die Eingabequelle wieder auf System.in zurück.
    static void
    Setzt die Eingabequelle für StdIn.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • setInputStream

      public static void setInputStream(InputStream in)
      Setzt die Eingabequelle für StdIn.

      Der Scanner wird mit UTF-8 initialisiert und verwendet die in IO.STANDARDLOCALE definierte Locale.

      Parameters:
      in - Eingabestrom
      Throws:
      NullPointerException - wenn in == null ist
    • resetToSystemIn

      public static void resetToSystemIn()
      Setzt die Eingabequelle wieder auf System.in zurück.
    • hasNextToken

      public static boolean hasNextToken()
      Prüft, ob noch ein weiteres Token (nicht nur Trennzeichen) verfügbar ist.
      Returns:
      true, wenn ein weiteres Token vorhanden ist, sonst false
    • hasNextChar

      public static boolean hasNextChar()
      Prüft, ob noch ein weiteres Zeichen (inkl. Leer-/Trennzeichen) verfügbar ist.
      Returns:
      true, wenn ein weiteres Zeichen vorhanden ist, sonst false
    • readChar

      public static char readChar()
      Liest das nächste Zeichen (inkl. Leer-/Trennzeichen) und gibt es zurück.
      Returns:
      nächstes Zeichen
      Throws:
      NoSuchElementException - wenn kein Zeichen verfügbar ist
    • readString

      public static String readString(String prompt)
      Liest das nächste Token und gibt es als String zurück.

      Wenn prompt nicht leer ist, wird es zuvor ausgegeben.

      Parameters:
      prompt - Eingabeaufforderung (kann leer sein)
      Returns:
      nächstes Token als String
      Throws:
      NoSuchElementException - wenn kein Token verfügbar ist
    • readString

      public static String readString()
      Liest das nächste Token und gibt es als String zurück.
      Returns:
      nächstes Token als String
      Throws:
      NoSuchElementException - wenn kein Token verfügbar ist
    • readAll

      public static String readAll()
      Liest die gesamte verbleibende Standardeingabe und gibt sie als String zurück.
      Returns:
      gesamte Eingabe als String; leerer String, wenn keine Eingabe vorhanden ist
    • readByte

      public static byte readByte()
      Liest das nächste Token und interpretiert es als byte.
      Returns:
      nächster byte-Wert
      Throws:
      NoSuchElementException - wenn kein Token verfügbar ist
      InputMismatchException - wenn das Token nicht als byte interpretierbar ist
    • readShort

      public static short readShort()
      Liest das nächste Token und interpretiert es als short.
      Returns:
      nächster short-Wert
      Throws:
      NoSuchElementException - wenn kein Token verfügbar ist
      InputMismatchException - wenn das Token nicht als short interpretierbar ist
    • readInt

      public static int readInt()
      Liest das nächste Token und interpretiert es als int.
      Returns:
      nächster int-Wert
      Throws:
      NoSuchElementException - wenn kein Token verfügbar ist
      InputMismatchException - wenn das Token nicht als int interpretierbar ist
    • readLong

      public static long readLong()
      Liest das nächste Token und interpretiert es als long.
      Returns:
      nächster long-Wert
      Throws:
      NoSuchElementException - wenn kein Token verfügbar ist
      InputMismatchException - wenn das Token nicht als long interpretierbar ist
    • readFloat

      public static float readFloat()
      Liest das nächste Token und interpretiert es als float.
      Returns:
      nächster float-Wert
      Throws:
      NoSuchElementException - wenn kein Token verfügbar ist
      InputMismatchException - wenn das Token nicht als float interpretierbar ist
    • readDouble

      public static double readDouble()
      Liest das nächste Token und interpretiert es als double.
      Returns:
      nächster double-Wert
      Throws:
      NoSuchElementException - wenn kein Token verfügbar ist
      InputMismatchException - wenn das Token nicht als double interpretierbar ist
    • readBoolean

      public static boolean readBoolean()
      Liest das nächste Token und interpretiert es als boolean.

      Akzeptierte Werte: true/false (Groß-/Kleinschreibung egal), 1 (wahr) und 0 (falsch).

      Returns:
      nächster boolean-Wert
      Throws:
      NoSuchElementException - wenn kein Token verfügbar ist
      InputMismatchException - wenn das Token nicht als boolean interpretierbar ist
    • hasNextLine

      public static boolean hasNextLine()
      Prüft, ob noch eine weitere Zeile verfügbar ist.
      Returns:
      true, wenn eine weitere Zeile vorhanden ist, sonst false
    • readLine

      public static String readLine()
      Liest die nächste Zeile und gibt sie ohne Zeilentrenner zurück.
      Returns:
      nächste Zeile als String; null, wenn keine weitere Zeile vorhanden ist
    • readWords

      public static String[] readWords()
      Liest alle verbleibenden Tokens der Eingabe und liefert sie als Array.

      Führende Trennzeichen werden ignoriert.

      Returns:
      Array aller verbleibenden Tokens
    • readLines

      public static String[] readLines()
      Liest alle verbleibenden Zeilen der Eingabe und liefert sie als Array.
      Returns:
      Array aller verbleibenden Zeilen
    • readBytes

      public static byte[] readBytes()
      Liest alle verbleibenden Tokens und interpretiert sie als byte-Werte.
      Returns:
      Array der gelesenen byte-Werte
      Throws:
      NumberFormatException - wenn ein Token nicht als byte interpretierbar ist
    • readShorts

      public static short[] readShorts()
      Liest alle verbleibenden Tokens und interpretiert sie als short-Werte.
      Returns:
      Array der gelesenen short-Werte
      Throws:
      NumberFormatException - wenn ein Token nicht als short interpretierbar ist
    • readInts

      public static int[] readInts()
      Liest alle verbleibenden Tokens und interpretiert sie als int-Werte.
      Returns:
      Array der gelesenen int-Werte
      Throws:
      NumberFormatException - wenn ein Token nicht als int interpretierbar ist
    • readLongs

      public static long[] readLongs()
      Liest alle verbleibenden Tokens und interpretiert sie als long-Werte.
      Returns:
      Array der gelesenen long-Werte
      Throws:
      NumberFormatException - wenn ein Token nicht als long interpretierbar ist
    • readFloats

      public static float[] readFloats()
      Liest alle verbleibenden Tokens und interpretiert sie als float-Werte.
      Returns:
      Array der gelesenen float-Werte
      Throws:
      NumberFormatException - wenn ein Token nicht als float interpretierbar ist
    • readDoubles

      public static double[] readDoubles()
      Liest alle verbleibenden Tokens und interpretiert sie als double-Werte.
      Returns:
      Array der gelesenen double-Werte
      Throws:
      NumberFormatException - wenn ein Token nicht als double interpretierbar ist
    • readChars

      public static char[] readChars()
      Liest die gesamte verbleibende Eingabe (bis EOF) und liefert sie als char-Array zurück.
      Returns:
      alle verbleibenden Zeichen als char-Array
    • readlnChars

      public static char[] readlnChars()
      Liest eine Zeile (interaktiv) und liefert sie als char-Array zurück.
      Returns:
      Zeichen der gelesenen Zeile
    • readlnChars

      public static char[] readlnChars(String prompt)
      Liest eine Zeile (interaktiv) und liefert sie als char-Array zurück. Vorher wird ein Prompt ausgegeben.
      Parameters:
      prompt - Eingabeaufforderung
      Returns:
      Zeichen der gelesenen Zeile
    • readlnInts

      public static int[] readlnInts()
      Liest eine Zeile (interaktiv) und interpretiert sie als Folge von int-Werten.
      Returns:
      Array der gelesenen int-Werte
      Throws:
      NumberFormatException - wenn ein Token nicht als int interpretierbar ist
    • readlnInts

      public static int[] readlnInts(String prompt)
      Liest eine Zeile (interaktiv) und interpretiert sie als Folge von int-Werten. Vorher wird ein Prompt ausgegeben.
      Parameters:
      prompt - Eingabeaufforderung
      Returns:
      Array der gelesenen int-Werte
      Throws:
      NumberFormatException - wenn ein Token nicht als int interpretierbar ist
    • readlnDoubles

      public static double[] readlnDoubles()
      Liest eine Zeile (interaktiv) und interpretiert sie als Folge von double-Werten.
      Returns:
      Array der gelesenen double-Werte
      Throws:
      NumberFormatException - wenn ein Token nicht als double interpretierbar ist
    • readlnDoubles

      public static double[] readlnDoubles(String prompt)
      Liest eine Zeile (interaktiv) und interpretiert sie als Folge von double-Werten. Vorher wird ein Prompt ausgegeben.
      Parameters:
      prompt - Eingabeaufforderung
      Returns:
      Array der gelesenen double-Werte
      Throws:
      NumberFormatException - wenn ein Token nicht als double interpretierbar ist
    • readlnInt

      public static int readlnInt()
      Liest eine Zeile (interaktiv) und liefert das erste Token als int zurück.

      Eventuelle weitere Tokens in der Zeile werden verworfen.

      Returns:
      gelesener int-Wert
      Throws:
      NumberFormatException - wenn das erste Token nicht als int interpretierbar ist
      NoSuchElementException - wenn keine Zeile verfügbar ist
    • readlnInt

      public static int readlnInt(String prompt)
      Liest eine Zeile (interaktiv) und liefert das erste Token als int zurück. Vorher wird ein Prompt ausgegeben.

      Eventuelle weitere Tokens in der Zeile werden verworfen.

      Parameters:
      prompt - Eingabeaufforderung
      Returns:
      gelesener int-Wert
      Throws:
      NumberFormatException - wenn das erste Token nicht als int interpretierbar ist
      NoSuchElementException - wenn keine Zeile verfügbar ist
    • readlnDouble

      public static double readlnDouble()
      Liest eine Zeile (interaktiv) und liefert das erste Token als double zurück.

      Eventuelle weitere Tokens in der Zeile werden verworfen.

      Returns:
      gelesener double-Wert
      Throws:
      NumberFormatException - wenn das erste Token nicht als double interpretierbar ist
      NoSuchElementException - wenn keine Zeile verfügbar ist
    • readlnDouble

      public static double readlnDouble(String prompt)
      Liest eine Zeile (interaktiv) und liefert das erste Token als double zurück. Vorher wird ein Prompt ausgegeben.

      Eventuelle weitere Tokens in der Zeile werden verworfen.

      Parameters:
      prompt - Eingabeaufforderung
      Returns:
      gelesener double-Wert
      Throws:
      NumberFormatException - wenn das erste Token nicht als double interpretierbar ist
      NoSuchElementException - wenn keine Zeile verfügbar ist
    • readlnLine

      public static String readlnLine(String prompt)
      Liest eine Zeile (interaktiv) und liefert sie als String zurück.
      Parameters:
      prompt - Eingabeaufforderung
      Returns:
      Zeile, ggf. leer
    • readlnLine

      public static String readlnLine()
      Liest eine Zeile (interaktiv) und liefert sie als String zurück.
      Returns:
      Zeile, ggf. leer
    • readlnToken

      public static String readlnToken(String prompt)
      Liest eine Zeile (interaktiv) und liefert das erste Token zurück.
      Parameters:
      prompt - Eingabeaufforderung
      Returns:
      Token
      Throws:
      NoSuchElementException - wenn keine Zeile verfügbar ist
    • readlnToken

      public static String readlnToken()
      Liest eine Zeile (interaktiv) und liefert das erste Token zurück.
      Returns:
      Zeile
    • readlnTokens

      public static String[] readlnTokens()
      Liest eine Zeile (interaktiv) und liefert sie als Array von Token zurück.
      Returns:
      Array der Token; leeres Array bei leerer Zeile
    • readlnTokens

      public static String[] readlnTokens(String prompt)
      Liest eine Zeile (interaktiv) und liefert sie als Array von Token zurück. Vorher wird ein Prompt ausgegeben.
      Parameters:
      prompt - Eingabeaufforderung
      Returns:
      Array der Token; leeres Array bei leerer Zeile