Do use Byte.parseByte(String) to do this:
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.
In Java byte values are [-128; 128). Therefore "128" will throw java.lang.NumberFormatException: Value out of range. Value:"128" Radix:10. The you have to decide what you want to do with those value: throw exception, because of invalid use data; or cast it to the closest byte value, like "128" -> 127; or even ignore such values. Then this code could look like this:
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;
}
4
solved How to convert an array of numeric values as strings to an array of bytes?