
/**
 * 字符串常用方法
 */
class StringUtils {


    /**
     * 返回[分隔符]最后出现后的子字符串。
     * @param delimiter 分隔符
     * @param text
     */
    static substringAfterLast(delimiter: string, text: string): string {
        const index = text.lastIndexOf(delimiter)
        if (index == -1) {
            return text
        } else {
            return text.substring(index + 1, text.length)
        }
    }


    /**
     * 判断是否非空字符串
     * @param text
     */
    static isNotEmpty(text?: string): boolean {
        return !StringUtils.isEmpty(text)
    }

    /**
     * 判断是否空字符串
     * @param text
     */
    static isEmpty(text?: string): boolean {
        if (!text) {
            return true;
        }
        return text.trim().length === 0
    }


    /**
     * Base64编码
     * @param txt
     */
    static base64Encode(txt: string): string {
        return Buffer.from(txt).toString('base64')
    }

    /**
     * Base64解码
     * @param base64String
     * @param encoding
     */
    static base64Decode(base64String: string, encoding: any = 'utf8'): string {
        return Buffer.from(base64String, 'base64').toString(encoding)
    }

}

export { StringUtils }