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

cn.nukkit.utils.StringUtils Maven / Gradle / Ivy

package cn.nukkit.utils;

import cn.nukkit.api.PowerNukkitXOnly;
import cn.nukkit.api.Since;
import org.jetbrains.annotations.NotNull;

import java.util.ArrayList;
import java.util.List;
import java.util.StringJoiner;

@PowerNukkitXOnly
@Since("1.6.0.0-PNX")
public final class StringUtils {
    private StringUtils() {

    }

    public static String beforeLast(String str, String splitter) {
        final int i = str.indexOf(splitter);
        if (i == -1) return str;
        return str.substring(0, i);
    }

    public static String afterFirst(String str, String splitter) {
        final int i = str.indexOf(splitter);
        if (i == -1) return str;
        return str.substring(i + 1);
    }

    @NotNull
    public static String capitalize(@NotNull String str) {
        if (str.length() == 0) {
            return "";
        }
        if (str.length() == 1) {
            return str.toUpperCase();
        }
        return str.substring(0, 1).toUpperCase() + str.substring(1);
    }

    /**
     * @see #fastSplit(String, String, int)
     */
    @Since("1.19.60-r1")
    public static List fastSplit(String delimiter, String str) {
        return fastSplit(delimiter, str, Integer.MAX_VALUE);
    }

    /**
     * 在短字符串上(通常只有一个分割)处理比{@link String#split(String)}快
     * 

* Processing on short strings(There is usually only one split) is faster than {@link String#split(String)} * * @param delimiter the delimiter * @param str the str * @param limit the limit * @return the list */ @Since("1.19.60-r1") public static List fastSplit(String delimiter, String str, int limit) { var tmp = str; var results = new ArrayList(); var count = 1; while (true) { int j = tmp.indexOf(delimiter); if (j < 0) { results.add(tmp); break; } results.add(tmp.substring(0, j)); count++; tmp = tmp.substring(j + 1); if (count == limit || tmp.isEmpty()) { results.add(tmp); break; } } return results; } public static String joinNotNull(String delim, String... elements) { StringJoiner join = new StringJoiner(delim); for (var element : elements) { if (element != null) { join.add(element); } } return join.toString(); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy