package org.dromara.tcpfuwu.util;

import org.springframework.stereotype.Component;

/**
 * 字节数组处理工具类
 */
@Component
public class ByteUtils {

    /**
     * 字节数组转16进制字符串（空格分隔）
     */
    public String bytesToHex(byte[] bytes) {
        if (bytes == null || bytes.length == 0) {
            return "";
        }
        StringBuilder sb = new StringBuilder();
        for (byte b : bytes) {
            sb.append(String.format("%02X ", b));
        }
        return sb.toString().trim();
    }

    /**
     * 字节数组转ASCII字符串（不可打印字符用[0xXX]表示）
     */
    public String bytesToAsciiString(byte[] bytes) {
        if (bytes == null || bytes.length == 0) {
            return "";
        }
        StringBuilder sb = new StringBuilder();
        for (byte b : bytes) {
            // 可打印ASCII范围：32（空格）~126（~）
            if (b >= 32 && b <= 126) {
                sb.append((char) b);
            } else {
                sb.append("[0x").append(String.format("%02X", b)).append("]");
            }
        }
        return sb.toString();
    }


}
