package com.dxhy.common.util;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 
 * @author jiaohongyang
 * @date 2019年3月26日 下午5:59:40
 *
 */
public class StringHelper {

    private static final String SEPARATOR = ",";

    public static String getObjectValue(Object obj) {
        return obj == null ? "" : obj.toString();
    }

    /**
     * 判断是不是空白字符串
     * 
     * @param src
     *            待处理字符串 空白时返回true，非空白时返回false
     * 
     * 
     * @author xyy
     */
    public static boolean isBlank(String src) {
        return src == null || src.length() == 0 || src.trim().length() == 0 || "null".equals(src.toLowerCase());
    }

    public static boolean isNotBlank(String src) {
        return src != null && src.length() != 0 && src.trim().length() != 0 && !"null".equals(src.toLowerCase());
    }

    /**
     * 处理字符串两端空白
     * 
     * @param src
     *            待处理字符串
     * @param defaultValue
     *            字符串空白时默认返回值 src空白时返回defaultValue，非空白时进行左右的空白处理
     * 
     * 
     * @author xyy
     */
    public static String trim(String src, String defaultValue) {
        if (isBlank(src)) {
            return defaultValue;
        } else {
            return src.trim();
        }
    }

    /**
     * 处理字符串中间的回车换行及两端的空白
     * 
     * @param src
     *            字符串
     *
     * 
     * 
     * @author xyy
     */
    public static String trimEnter(String src) {
        src = trim(src, "");
        if (!isBlank(src)) {
            src = src.replaceAll("\r", "");
            src = src.replaceAll("\n", "");
        }
        return src;
    }

    public static void main(String[] args) {
        String s = trimEnter(null);
        System.out.println(s.length());
    }

    /**
     * 把list转换成特定分隔符的字符串
     * 
     * @param list
     *            list数值
     *
     * 
     */
    public static String listToString(List<String> list) {
        StringBuilder sb = new StringBuilder();
        for (String s : list) {
            if (!isBlank(s)) {
                sb.append(SEPARATOR).append(s);
            }
        }
        return sb.toString();
    }

    /**
     * 把字符串转换为list
     * 
     * @param data
     *            数值
     *
     * 
     */
    public static List<String> stringToList(String data) {
        List<String> dataList = new ArrayList<>();
        if (!isBlank(data)) {
            String[] datas = data.split(SEPARATOR);
            dataList = Arrays.asList(datas);
        }
        return dataList;
    }

}
