package com.sunyard.ssp.utils;

/**
 * @author:tsz
 * @date:2020/5/28
 * @description:
 */
public class StringUtil {
    /**
     * 截取字符串str中指定字符 strStart、strEnd之间的字符串
     * @param str
     * @param strStart
     * @param strEnd
     * @return
     */
    public static String subString(String str, String strStart, String strEnd) {

        /* 找出指定的2个字符在 该字符串里面的 位置 */
        int strStartIndex = str.indexOf(strStart);
        int strEndIndex = str.indexOf(strEnd);

        /* index 为负数 即表示该字符串中 没有该字符 */
        if (strStartIndex < 0) {
            return "字符串 :---->" + str + "<---- 中不存在 " + strStart + ", 无法截取目标字符串";
        }
        if (strEndIndex < 0) {
            return "字符串 :---->" + str + "<---- 中不存在 " + strEnd + ", 无法截取目标字符串";
        }
        /* 开始截取 */
        String result = str.substring(strStartIndex, strEndIndex).substring(strStart.length());
        return result;
    }
    /**
     * 将byte数组转换为16进制字符串
     * @param bytes 要转换的byte数组
     * @return 转换后的16进制字符串
     */
    public static String bytesToHex(byte[] bytes) {
        StringBuilder hexBuilder = new StringBuilder();
        for (byte b : bytes) {
            String hex = Integer.toHexString(b & 0xFF); // 将byte转换为无符号的16进制字符串
            if (hex.length() == 1) {
                hexBuilder.append('0'); // 如果是单个字符，前面补0
            }
            hexBuilder.append(hex);
        }
        return hexBuilder.toString();
    }
}

