package com.sandu.ximon.admin.manager.iot.rrpc.util;
|
|
/**
|
* @author chenjiantian
|
*/
|
public class SupplementUtils {
|
|
|
/**
|
* 截取指定长度的字符串,不足以0填充前面
|
*
|
* @param hex 字符串
|
* @param totalBit 截取长度
|
* @return 截取后的字符串
|
*/
|
public static String suppleZero(String hex, Integer totalBit) {
|
|
if (hex.length() > totalBit) {
|
return hex.substring(0, totalBit);
|
} else if (hex.length() == totalBit) {
|
return hex;
|
}
|
totalBit = totalBit - hex.length();
|
|
StringBuilder hexBuilder = new StringBuilder(hex);
|
for (int i = 0; i < totalBit; i++) {
|
hexBuilder.insert(0, "0");
|
}
|
hex = hexBuilder.toString();
|
return hex;
|
}
|
|
/**
|
* 十进制转16进制,补位0
|
*
|
* @param index 字符串
|
* @param totalBit 截取长度
|
* @return 截取后的字符串
|
*/
|
public static String suppleZero(Integer index, Integer totalBit) {
|
String format = String.format("%02X", index);
|
|
totalBit = totalBit - format.length();
|
|
StringBuilder hexBuilder = new StringBuilder(format);
|
for (int i = 0; i < totalBit; i++) {
|
hexBuilder.insert(0, "0");
|
}
|
format = hexBuilder.toString();
|
return format;
|
}
|
|
/**
|
* 十六进制转换成字节数组
|
*/
|
public static byte[] hexStringToBytes(String hexString) {
|
if (hexString == null || hexString.equals("")) {
|
return null;
|
}
|
hexString = hexString.toUpperCase(); // 十六进制转大写字母
|
int length = hexString.length() / 2; // 获取十六进制的长度,2个字符为一个十六进制
|
char[] hexChars = hexString.toCharArray();
|
byte[] d = new byte[length];
|
for (int i = 0; i < length; i++) {
|
int pos = i * 2;
|
d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
|
}
|
return d;
|
}
|
|
/**
|
* char转byte
|
*/
|
private static byte charToByte(char c) {
|
return (byte) "0123456789ABCDEF".indexOf(c);
|
}
|
|
|
public static boolean isHex(String str) {
|
boolean isHexFlg = true;
|
int i = 0;
|
char c;
|
for (i = 0; i < str.length(); i++) {
|
c = str.charAt(i);
|
if (!(((c >= '0') && (c <= '9')) || ((c >= 'A') && (c <= 'F')) || ((c >= 'a') && (c <= 'f')) || (c == ' '))) {
|
isHexFlg = false;
|
break;
|
}
|
}
|
return isHexFlg;
|
}
|
|
}
|