如何将数值数组作为字符串转换为字节数组?

时间:2018-06-04 12:52:42

标签: java

如何存储例如此字符串数组:

{ "128", "128", "127" }

到这个byte []数组:

[128, 128, 127]

1 个答案:

答案 0 :(得分:1)

请使用Byte.parseByte(String)执行此操作:

public static byte[] toByteArray(String[] arr) {
    byte[] res = new byte[arr.length];

    for (int i = 0; i < arr.length; i++)
        res[i] = Byte.parseByte(arr[i]);

    return res;
}

<强> P.S。Java字节值 [ - 128; 128)即可。因此"128"会抛出java.lang.NumberFormatException: Value out of range. Value:"128" Radix:10。您必须决定要对这些值做什么:抛出异常,因为使用数据无效;或者将其转换为最接近的字节值,如"128" -> 127;甚至忽略这些价值观。然后这段代码看起来像这样:

public static byte[] toByteArray(String[] arr) {
    byte[] res = new byte[arr.length];

    for (int i = 0; i < arr.length; i++) {
        try {
            res[i] = Byte.parseByte(arr[i]);    
        } catch(Exception e) {
            res[i] = // TODO action for incorrect value
        }
    }

    return res;
}