All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.chrlembeck.util.lang.StringUtils Maven / Gradle / Ivy

The newest version!
package de.chrlembeck.util.lang;

/**
 * Enthält einige Hilfsmethoden zur Verarbeitung von Zeichenketten.
 * 
 * @author Christoph Lembeck
 */
@SuppressWarnings("PMD.UseUtilityClass")
public final class StringUtils {

    /**
     * Hilfs-Array für die formatierung von Bytes als Hexadezimale Darstellung.
     */
    private static final char[] HEX = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E',
            'F' };

    /**
     * Gibt true zurück, wenn die Zeichenkette null ist oder kein Zeichen enthält.
     * 
     * @param value
     *            Zu prüfende Zeichenkette.
     * @return true, falls die Zeichenkette null ist oder kein Zeichen enthält.
     * @see String#isEmpty()
     */
    public static boolean isEmpty(final String value) {
        return value == null || value.isEmpty();
    }

    /**
     * Wandelt das übergebene Byte-Array in eine Zeichenkette, in der die Bytes in hexadezimaler Schreibweise enthalten
     * sind, um. Jedes Byte wird dabei durch genau zwei Zeichen im Bereich von (00..FF) dargestellt. Beispiel: [255,20]
     * --> "FF14"
     * 
     * @param bytes
     *            Bytes, die textuell dargestellt werden sollen.
     * @return Die Bytes als hexadezimale Darstellung.
     */
    public static String toHexString(final byte[] bytes) {
        final StringBuilder builder = new StringBuilder();
        for (final byte b : bytes) {
            final int high = (b & 0xf0) >> 4;
            final int low = b & 0xf;
            builder.append(HEX[high]);
            builder.append(HEX[low]);
        }
        return builder.toString();
    }

    /**
     * Ermittelt die Länge der Zeichenkette. {@code null} wird dabei als Länge 0 angesehen.
     * 
     * @param text
     *            Text, dessen Länge ermittelt werden soll.
     * @return Länge des Texts oder 0, falls null übergeben wurde.
     */
    public static int lengthNullToZero(final String text) {
        return text == null ? 0 : text.length();
    }

    /**
     * Verwandelt den ersten Buchstaben der übergebenen Zeichenkette in einen Großbuchstaben.
     * 
     * @param text
     *            Zeichenkette, deren erster Buchstabe umgewandelt werden soll.
     * @return Zeichenkette mit dem ersten Buchstaben als Großbuchstabe, null, falls die Eingabe null war oder eine
     *         leere Zeichenkette, falls die Zeichenkette vorher auch leer war.
     */
    public static String toFirstUpper(final String text) {
        return text == null ? null
                : text.isEmpty() ? ""
                        : Character.isUpperCase(text.charAt(0)) ? text
                                : Character.toUpperCase(text.charAt(0)) + text.substring(1);
    }

    /**
     * Verwandelt den ersten Buchstaben der übergebenen Zeichenkette in einen Kleinbuchstaben.
     * 
     * @param text
     *            Zeichenkette, deren erster Buchstabe umgewandelt werden soll.
     * @return Zeichenkette mit dem ersten Buchstaben als Kleinbuchstabe, null, falls die Eingabe null war oder eine
     *         leere Zeichenkette, falls die Zeichenkette vorher auch leer war.
     */
    public static String toFirstLower(final String text) {
        return text == null ? null
                : text.isEmpty() ? ""
                        : Character.isLowerCase(text.charAt(0)) ? text
                                : Character.toLowerCase(text.charAt(0)) + text.substring(1);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy