java怎样实现十六进制字符串高低位转换-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

java怎样实现十六进制字符串高低位转换

泡沫小迪 2020-05-29 16:07:07 67

比如我有十六进制字符串“2E0A”,怎样转化为“0A2E”?

Java
分享到
取消 提交回答
全部回答(1)
  • 泡沫小迪
    2020-05-29 16:07:17
    转成char[],然后for循环+交换一下顺序,最后把char[]再转成string。
    @Test
    public void test_reverseHex() {
      Assert.assertEquals("23010A2E", reverseHex("2E0A0123"));
      Assert.assertEquals("2E0A0123", reverseHex(reverseHex("2E0A0123")));
    }
    
    private static String reverseHex(final String hex) {
      final char[] charArray = hex.toCharArray();
      final int length = charArray.length;
      final int times = length / 2;
      for (int c1i = 0; c1i < times; c1i += 2) {
        final int c2i = c1i + 1;
        final char c1 = charArray[c1i];
        final char c2 = charArray[c2i];
        final int c3i = length - c1i - 2;
        final int c4i = length - c1i - 1;
        charArray[c1i] = charArray[c3i];
        charArray[c2i] = charArray[c4i];
        charArray[c3i] = c1;
        charArray[c4i] = c2;
      }
      return new String(charArray);
    }
    
    
    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题