如何将字节数组转换为字符串,不包括Android中的0x00字符

时间:2014-05-15 23:02:39

标签: android arrays string byte

我的解密例程的结果返回一个像这样的字节数组:

30303030303030310000000000000000

那应该转换为(int)00000001,但我无法摆脱尾随的0x00' s。什么是实现这一目标的最佳方式?

非常感谢任何帮助,谢谢!

2 个答案:

答案 0 :(得分:1)

找到修复字节数组中尾随0x00的解决方法(替换或修剪不起作用):

public static String bytesToString(byte[] data) {
    String dataOut = "";
    for (int i = 0; i < data.length; i++) {
        if (data[i] != 0x00)
            dataOut += (char)data[i];
    }
    return dataOut;
}

答案 1 :(得分:0)

为什么不使用替换方法?

String foo = new String(myBytes);
foo = foo.replace((char)0, ''); // Character with zero

Integer result = Integer.valueOf(foo);

甚至更好,一个正则表达式过滤字符串,摆脱0-9范围内的任何东西。

String foo = new String(myBytes);
foo = foo.replace((char)0, ''); // Character with zero

Integer result = Integer.valueOf(foo);