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

com.blazebit.lang.StringUtils Maven / Gradle / Ivy

There is a newer version: 1.6.11
Show newest version
package com.blazebit.lang;

import java.util.Iterator;

public final class StringUtils {

    private StringUtils() {
    }

    public static boolean isEmpty(CharSequence sequence) {
        if (sequence == null || sequence.length() == 0) {
            return true;
        }

        return false;
    }

    public static boolean isEmpty(CharSequence... sequence) {
        if (sequence == null || sequence.length == 0) {
            return true;
        }

        for (CharSequence s : sequence) {
            if (s == null || s.length() == 0) {
                return true;
            }
        }

        return false;
    }

    public static String join(CharSequence delimiter, CharSequence... parts) {
        return join(
                new StringBuilder((parts.length + delimiter.length()) * 10),
                delimiter, parts).toString();
    }

    public static StringBuilder join(StringBuilder sb, CharSequence delimiter,
                                     CharSequence... parts) {
        if (parts.length == 0) {
            return sb;
        }

        final int last = parts.length - 1;

        for (int i = 0; i < last; i++) {
            sb.append(parts[i]);
            sb.append(delimiter);
        }

        sb.append(parts[last]);
        return sb;
    }

    public static String join(CharSequence delimiter,
                              Iterable parts) {
        return join(new StringBuilder(), delimiter, parts).toString();
    }

    public static  String join(CharSequence delimiter, Iterable parts,
                                                          ValueRetriever expression) {
        return join(new StringBuilder(), delimiter, parts, expression)
                .toString();
    }

    public static StringBuilder join(StringBuilder sb, CharSequence delimiter,
                                     Iterable parts) {
        return join(sb, delimiter, parts.iterator());
    }

    public static  StringBuilder join(StringBuilder sb,
                                                                 CharSequence delimiter, Iterable parts,
                                                                 ValueRetriever expression) {
        return join(sb, delimiter, parts.iterator(), expression);
    }

    public static String join(CharSequence delimiter,
                              Iterator iter) {
        return join(new StringBuilder(), delimiter, iter).toString();
    }

    public static  String join(CharSequence delimiter, Iterator iter,
                                                          ValueRetriever expression) {
        return join(new StringBuilder(), delimiter, iter, expression)
                .toString();
    }

    public static StringBuilder join(StringBuilder sb, CharSequence delimiter,
                                     Iterator iter) {
        if (!iter.hasNext()) {
            return sb;
        }

        sb.append(iter.next());

        while (iter.hasNext()) {
            sb.append(delimiter);
            sb.append(iter.next());
        }

        return sb;
    }

    public static  StringBuilder join(StringBuilder sb,
                                                                 CharSequence delimiter, Iterator iter,
                                                                 ValueRetriever expression) {
        if (!iter.hasNext()) {
            return sb;
        }

        sb.append(expression.getValue(iter.next()).toString());

        while (iter.hasNext()) {
            sb.append(delimiter);
            sb.append(expression.getValue(iter.next()).toString());
        }

        return sb;
    }

    public static String firstToUpper(CharSequence s) {
        return addFirstToUpper(new StringBuilder(s.length()), s).toString();
    }

    public static StringBuilder addFirstToUpper(StringBuilder sb, CharSequence s) {
        sb.append(Character.toUpperCase(s.charAt(0)));
        sb.append(s, 1, s.length());
        return sb;
    }

    public static String firstToLower(CharSequence s) {
        return addFirstToLower(new StringBuilder(s.length()), s).toString();
    }

    public static StringBuilder addFirstToLower(StringBuilder sb, CharSequence s) {
        sb.append(Character.toLowerCase(s.charAt(0)));
        sb.append(s, 1, s.length());
        return sb;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy