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

com.qiniu.util.StringUtils Maven / Gradle / Ivy

There is a newer version: 7.17.0
Show newest version
package com.qiniu.util;

import com.qiniu.common.Constants;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Collection;

/**
 * 字符串连接工具类
 */
public final class StringUtils {

    private StringUtils() {
    }

    /**
     * @param array array
     * @param sep   sep
     * @return 拼接后的字符串
     * @see #join(Object[] array, String sep, String prefix)
     */
    public static String join(Object[] array, String sep) {
        return join(array, sep, null);
    }

    /**
     * @param list list
     * @param sep  sep
     * @return 拼接后的字符串
     * @see #join(Object[] array, String sep, String prefix)
     */
    public static String join(Collection list, String sep) {
        return join(list, sep, null);
    }

    /**
     * @param list   list
     * @param sep    sep
     * @param prefix 前缀
     * @return 拼接后的字符串
     * @see #join(Object[] array, String sep, String prefix)
     */
    public static String join(Collection list, String sep, String prefix) {
        Object[] array = list == null ? null : list.toArray();
        return join(array, sep, prefix);
    }

    /**
     * 以指定的分隔符来进行字符串元素连接
     * 

* 例如有字符串数组array和连接符为逗号(,) * * String[] array = new String[] { "hello", "world", "qiniu", "cloud","storage" }; * * 那么得到的结果是: * * hello,world,qiniu,cloud,storage * *

* * @param array 需要连接的对象数组 * @param sep 元素连接之间的分隔符 * @param prefix 前缀字符串 * @return 连接好的新字符串 */ public static String join(Object[] array, String sep, String prefix) { if (array == null) { return ""; } int arraySize = array.length; if (arraySize == 0) { return ""; } if (sep == null) { sep = ""; } if (prefix == null) { prefix = ""; } StringBuilder buf = new StringBuilder(prefix); for (int i = 0; i < arraySize; i++) { if (i > 0) { buf.append(sep); } buf.append(array[i] == null ? "" : array[i]); } return buf.toString(); } /** * 以json元素的方式连接字符串中元素 *

* 例如有字符串数组array * * String[] array = new String[] { "hello", "world", "qiniu", "cloud","storage" }; * * 那么得到的结果是: * * "hello","world","qiniu","cloud","storage" * *

* * @param array 需要连接的字符串数组 * @return 以json元素方式连接好的新字符串 */ public static String jsonJoin(String[] array) { int arraySize = array.length; int bufSize = arraySize * (array[0].length() + 3); StringBuilder buf = new StringBuilder(bufSize); for (int i = 0; i < arraySize; i++) { if (i > 0) { buf.append(','); } buf.append('"'); buf.append(array[i]); buf.append('"'); } return buf.toString(); } public static boolean isNullOrEmpty(String s) { return s == null || "".equals(s); } public static boolean inStringArray(String s, String[] array) { for (String x : array) { if (x.equals(s)) { return true; } } return false; } public static byte[] utf8Bytes(String data) { return data.getBytes(Constants.UTF_8); } public static String utf8String(byte[] data) { return new String(data, Constants.UTF_8); } public static String md5Lower(String src) throws NoSuchAlgorithmException { MessageDigest digest = MessageDigest.getInstance("MD5"); digest.update(src.getBytes(Constants.UTF_8)); byte[] md5Bytes = digest.digest(); return Hex.encodeHexString(md5Bytes); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy