直接将字符串的长度 转换成十六进制的字符串 再翻转一下就行了啊
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来发送即可。
这篇文章写的挺详细的,你能看下