将字符串两个字符串反转两个字符

时间:2012-04-06 14:43:47

标签: java string reverse

我正在尝试开发一个将6个字节转换为十六进制表示的程序(如00:65:36:21:A5:BC)

用这种方法:

public static String toHexString(byte[] bytes) {
        StringBuilder sb = new StringBuilder(18);
        for (byte b : bytes) {
            if (sb.length() > 0)
                sb.append(':');
            sb.append(String.format("%02x", b));
        }

        return sb.toString();

    }

我正在获得一个好的格式,但现在我必须将两位数字反转。

我得到的00:65:36:21:A5:BC

我应该得到什么BC:A5:21:36:65:00

有人可以帮我完成最后一步吗?我正在努力取每一对数字并反转其位置(将BC放在开头,但不改变其顺序(如CB)

提前致谢

-G。

3 个答案:

答案 0 :(得分:4)

要在开头追加而不是追加到最后一个,请使用:

sb.insert(0, text);

而不是:

sb.append(text);

答案 1 :(得分:0)

您可以使用反向常规for代替for each

public static String toHexString(byte[] bytes) {
    StringBuilder sb = new StringBuilder(18);
    for (int i = bytes.length - 1; i >= 0; i--) {
        if (sb.length() > 0)
            sb.append(':');
        sb.append(String.format("%02x", bytes[i]));
    }

    return sb.toString();

}

答案 2 :(得分:0)

使用StringBuilder类的insert方法而不是append方法,偏移量为0.

您可以阅读更多here