java将字符串的长度,转换为16进制两个字节,低位在前高位在后

直接将字符串的长度 转换成十六进制的字符串 再翻转一下就行了啊


public class StringHex {
    public static void main(String[] args) {
        String s = "sdafsadfsasdfsafsdfasdfsadfadfsad";
        Integer n = s.length();
        System.out.println(Integer.toHexString(n));
        StringBuilder result = new StringBuilder();
        for (int i = 0; i <= Integer.toHexString(n).length() - 2; i = i + 2) {
            result.append(new StringBuilder(Integer.toHexString(n).substring(i, i + 2)).reverse());
        }
        System.out.println(result);
    }

}
 

把字符串转换为字符数组,之后拼成一个长的16进制字符串,再从后往前(高位在前,低位在后)或者从前往后(低位在前,高位在后)没2个字符截取下拼接就可以了。

这是在socket通讯中的协议,java的socket发送无需自己做高低位转换的。直接把长度变成short来发送即可。

这篇文章写的挺详细的,你能看下

https://www.cnblogs.com/gyyyblog/p/13164305.html