Package pi.util

Class TextUtil

java.lang.Object
pi.util.TextUtil

public class TextUtil extends Object
Eine Sammlung von statischen Hilfsmethoden um Text und Zeichenketten zu bearbeiten.
Author:
Josef Friedrich
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    Ein einheitliches Standard-Zeilen-Trennzeichen.
  • Method Summary

    Modifier and Type
    Method
    Description
    static String
    align(@NonNull String text, int width, @Nullable HAlign alignment)
    Richtet den gegebenen Text gemäß einer bestimmten Zeilenbreite und einer gewünschten Textausrichtung aus.
    static String
    align(@NonNull String text, @Nullable HAlign alignment)
    Richtet den gegebenen Text gemäß einer gewünschten Textausrichtung aus.
    static String
    Konvertiert mehrere Inhalte zu einem mehrzeiligen Text.
    static String
    Konvertiert einen Inhalt in einem beliebigen Datentyp zu einer Zeichenkette.
    static int
    getLineCount(@NonNull String text)
    Gibt die Anzahl der Zeilen zurück.
    static int
    getLineWidth(@NonNull String text)
    Gibt die maximale Zeilenbreite eines gegebenen Texts zurück.
    static String
    Normalisiert die Zeilentrennzeichen einer Zeichenkette auf "\n".
    static String
    Rundet eine Zahl auf eine Nachkommastelle.
    static String
    roundNumber(Object number, int decimalPlaces)
    Formatiert eine übergebene Zahl auf die angegebene Anzahl Nachkommastellen und gibt das Ergebnis als String zurück.
    static String[]
    splitLines(@NonNull String text)
    Teilt einen Text in die einzelnen Zeilen auf.
    static String
    wrap(@NonNull String text, int width, @Nullable HAlign alignment)
    Bricht den gegebenen Text nach einer bestimmten Zeilenbreite um.
    static String
    wrap(String text, int width)
    Bricht den gegebenen Text nach einer bestimmten Zeilenbreite, und zwar linksbündig um.

    Methods inherited from class java.lang.Object

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

  • Method Details

    • roundNumber

      public static String roundNumber(Object number)
      Rundet eine Zahl auf eine Nachkommastelle.
      Parameters:
      number - Eine Zahl, die gerundet werden soll.
      Returns:
      Die gerundete Zahl als Zeichenkette.
    • roundNumber

      public static String roundNumber(Object number, int decimalPlaces)
      Formatiert eine übergebene Zahl auf die angegebene Anzahl Nachkommastellen und gibt das Ergebnis als String zurück. Es werden fehlende Nachkommastellen mit Nullen aufgefüllt.
      Parameters:
      number - Eine darstellbare Zahl (Instanz von Number oder kompatibel). Wenn das Objekt kein unterstützter Zahlentyp ist, wirft DecimalFormat eine IllegalArgumentException.
      decimalPlaces - Anzahl der gewünschten Nachkommastellen (>= 0). Bei 0 werden keine Dezimalstellen ausgegeben.
      Returns:
      String-Repräsentation der Zahl mit exakt decimalPlaces Nachkommastellen.
      Throws:
      IllegalArgumentException - falls decimalPlaces kleiner 0 ist oder das Objekt nicht als Zahl formatiert werden kann.
    • getLineWidth

      public static int getLineWidth(@NonNull String text)
      Gibt die maximale Zeilenbreite eines gegebenen Texts zurück.
      Parameters:
      text - Der Text, von dem die maximale Zeilenbreite bestimmt werden soll.
      Returns:
      Die Anzahl an Zeichen, die die längste Zeile beinhaltet.
      Since:
      0.23.0
    • getLineCount

      public static int getLineCount(@NonNull String text)
      Gibt die Anzahl der Zeilen zurück.
      Parameters:
      text - Der Text, von dem die Anzahl der Zeilen bestimmt werden soll.
      Returns:
      Die Anzahl der Zeilen.
      Since:
      0.23.0
    • splitLines

      public static String[] splitLines(@NonNull String text)
      Teilt einen Text in die einzelnen Zeilen auf. Der Text muss Zeilenumbrüche enthalten.
      Parameters:
      text - Der Text, der in die einzelnen Zeilen aufgeteilt werden soll.
      Returns:
      Die einzelnen Zeilen des Textes.
      Since:
      0.23.0
    • normalizeLineSeparator

      public static String normalizeLineSeparator(@NonNull String text)
      Normalisiert die Zeilentrennzeichen einer Zeichenkette auf "\n".

      Ersetzt alle Windows-Zeilenenden ("\r\n") und alte Mac-Zeilenenden ("\r") durch "\n".

      Parameters:
      text - Die Zeichenkette, deren Zeilentrennzeichen normalisiert werden sollen.
      Returns:
      Die Zeichenkette mit einheitlichen "\n"-Zeilenenden.
      Since:
      0.47.0
    • align

      public static String align(@NonNull String text, int width, @Nullable HAlign alignment)
      Richtet den gegebenen Text gemäß einer bestimmten Zeilenbreite und einer gewünschten Textausrichtung aus.
      Parameters:
      text - Die Zeichenkette, die ausgerichtet werden soll.
      width - Die Anzahl an Zeichen, die jede Zeile lang sein soll.
      alignment - Ob die Zeichen links-, rechtsbündig oder zentriert ausgerichtet werden soll.
      Returns:
      Eine Zeichenkette, in der je nach Ausrichtung Leerzeichen eingefügt wurden.
      Since:
      0.23.0
    • align

      public static String align(@NonNull String text, @Nullable HAlign alignment)
      Richtet den gegebenen Text gemäß einer gewünschten Textausrichtung aus.
      Parameters:
      text - Die Zeichenkette, die ausgerichtet werden soll.
      alignment - Ob die Zeichen links-, rechtsbündig oder zentriert ausgerichtet werden soll.
      Returns:
      Eine Zeichenkette, in der je nach Ausrichtung Leerzeichen eingefügt wurden.
      Since:
      0.23.0
    • wrap

      public static String wrap(@NonNull String text, int width, @Nullable HAlign alignment)
      Bricht den gegebenen Text nach einer bestimmten Zeilenbreite um. Außerdem kann die Textausrichtung angegeben werden.

      Nach einem Code-Beispiel auf baeldung.com.

      Parameters:
      text - Der Text, der nach einer bestimmten Zeilenbreite umgebrochen werden soll.
      width - Die maximale Zeilenbreite.
      alignment - Die Textausrichtung.
      Returns:
      Der neu formatierte Text, in den möglicherweise neue Zeilenumbrüche eingefügt wurden.
      Throws:
      IllegalArgumentException - Falls es ein längeres Wort als die Zeilenbreite gibt.
      Since:
      0.23.0
    • wrap

      public static String wrap(String text, int width)
      Bricht den gegebenen Text nach einer bestimmten Zeilenbreite, und zwar linksbündig um.
      Parameters:
      text - Der Text, der nach einer bestimmten Zeilenbreite umgebrochen werden soll.
      width - Die maximale Zeilenbreite.
      Returns:
      Der neu formatierte Text, in den möglicherweise neue Zeilenumbrüche eingefügt wurden.
      Throws:
      IllegalArgumentException - Falls es ein längeres Wort als die Zeilenbreite gibt.
      Since:
      0.23.0
    • convertToString

      public static String convertToString(Object content)
      Konvertiert einen Inhalt in einem beliebigen Datentyp zu einer Zeichenkette.

      Für Felder/Arrays, Listen, Sets und Maps werden die einzelnen Elemente in die resultierende Zeichenkette konvertiert.

      Außerdem werden die Zeilen-Trennzeichen normalisiert. Alle Windows-Zeilenenden ("\r\n") und alte Mac-Zeilenenden ("\r") werden durch "\n" ersetzt. Darüberhinaus werden alle ANSI-Farbcodes entfernt.

      Beispiele:

      • null""
      • "text""text"
      • [1, 2, 3]"[1, 2, 3]"
      • [1.5, 2.5]"[1.5, 2.5]"
      • List.of("a", "b")"[a, b]"
      • Map.of("key", "value")"{key=value}"
      Parameters:
      content - Der Inhalt, der konvertiert werden soll.
      Returns:
      Die Zeichenketten-Repräsentation des Inhalts mit konvertierten Elementen für Sammlungstypen.
      Since:
      0.45.0
    • convertToMultilineString

      public static String convertToMultilineString(Object... content)
      Konvertiert mehrere Inhalte zu einem mehrzeiligen Text.

      Jedes übergebene Element wird mit convertToString(Object) in eine Zeichenkette umgewandelt. Anschließend werden die Ergebnisse mit "\n" (siehe LINE_SEPARATOR) verbunden, sodass jedes Element in einer eigenen Zeile steht.

      Parameters:
      content - Die Inhalte, die zeilenweise konvertiert werden sollen.
      Returns:
      Eine mehrzeilige Zeichenkette mit einem Eintrag pro Zeile. Bei einem leeren Argument-Array wird eine leere Zeichenkette zurückgegeben.
      Since:
      0.45.0