当前位置:   article > 正文

java 十进制数和十六进制数互相转换,正则等知识总结_java byte数组十进制转16进制数组

java byte数组十进制转16进制数组

一、将 "a"转化为 "10" 的样式

  1. public static String hexStrToIntStr(String hexStr) {
  2. // 不存在数据时 返回null
  3. if (hexStr == null || hexStr == "") {
  4. return null;
  5. }
  6. String regexStr = "^[A-Fa-f0-9]+$";
  7. // 字符串超过十六进制数 返回null
  8. if (!hexStr.matches(regexStr)) {
  9. return null;
  10. }
  11. // 进行字符的转换
  12. Integer in = Integer.parseInt(hexStr, 16);
  13. return String.valueOf(in);
  14. }

测试代码

  1. System.out.println(hexStrToIntStr("a"));
  2. System.out.println(hexStrToIntStr("Aa"));
  3. 10
  4. 170

二、将 "15" 转化成 "f"的格式

  1. public static String intStrToHexStr(String intStr) {
  2. // 不存在数据时 返回null
  3. if (intStr == null || intStr == "") {
  4. return null;
  5. }
  6. //进行转换操作
  7. StringBuffer Hex=new StringBuffer("");
  8. String m="0123456789abcdef";
  9. int i = Integer.parseInt(intStr, 10);
  10. if(i==0) Hex.append(i);
  11. while (i!=0) {
  12. Hex.append(m.charAt(i%16));
  13. i>>=4;
  14. }
  15. return Hex.reverse().toString();
  16. }

测试代码

  1. System.out.println(intStrToHexStr("15"));
  2. System.out.println(intStrToHexStr("170"));
  3. f
  4. aa

三、将 "01" 转化为  "0x01" 的样式

  1. public static byte[] HexString2Bytes(String src) {
  2. byte[] ret = new byte[src.length() / 2];
  3. byte[] tmp = src.getBytes();
  4. for (int i = 0; i < tmp.length / 2; i++) {
  5. ret[i] = uniteBytes(tmp[i * 2], tmp[i * 2 + 1]);
  6. }
  7. return ret;
  8. }
  9. public static byte uniteBytes(byte src0, byte src1) {
  10. byte _b0 = Byte.decode("0x" + new String(new byte[] { src0 }))
  11. .byteValue();
  12. _b0 = (byte) (_b0 << 4);
  13. byte _b1 = Byte.decode("0x" + new String(new byte[] { src1 }))
  14. .byteValue();
  15. byte ret = (byte) (_b0 ^ _b1);
  16. return ret;
  17. }

四、将byte[]{0x01,0x11} 转化为 "0111" 格式输出

  1. public static String bytesToHexString(byte[] src) {
  2. StringBuilder stringBuilder = new StringBuilder("");
  3. if(src == null || src.length <= 0) {
  4. return null;
  5. }
  6. for (int i = 0; i < src.length; i++) {
  7. int v = src[i] & 0xFF;
  8. String hv = Integer.toHexString(v);
  9. if(hv.length() < 2) {
  10. stringBuilder.append(0);
  11. }
  12. stringBuilder.append(hv);
  13. }
  14. return stringBuilder.toString();
  15. }

五、将byte[]{0,0} 转化为 "00"格式输出

  1. public static String byteArrayToString(byte[] bytes) {
  2. StringBuilder stringBuilder = new StringBuilder("");
  3. if(bytes == null || bytes.length <= 0) {
  4. return null;
  5. }
  6. for (int i = 0; i < bytes.length; i++) {
  7. int v = bytes[i] & 0xFF;
  8. String hv = Integer.toHexString(v);
  9. stringBuilder.append(hv);
  10. }
  11. return stringBuilder.toString();
  12. }

六、java正则判断IMEI、MAC、IMSI信息

  1. public static final String imsiRegex = "^[0-9]{15,16}$";
  2. public static final String imeiRegex = "^[0-9]{15,17}$";
  3. public static final String macRegex = "^([A-Fa-f0-9]{2}(-[A-Fa-f0-9]{2}){5})";
  4. /**
  5. * @param regex
  6. * 正则表达式字符串
  7. * @param str
  8. * 要匹配的字符串
  9. * @return 如果str 符合 regex的正则表达式格式,返回true, 否则返回 false;
  10. */
  11. public static boolean match(String regex, String str) {
  12. Pattern pattern = Pattern.compile(regex);
  13. Matcher matcher = pattern.matcher(str);
  14. return matcher.matches();
  15. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/226758
推荐阅读
相关标签
  

闽ICP备14008679号