3 回答
TA贡献1816条经验 获得超6个赞
尝试这个:
String message = "[72,69,76,76,79]";
String[] stringArray = message.replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("\\s", "").split(",");
byte[] byteArray = new byte[stringArray.length];
for(int i = 0; i<stringArray.length; i++)
{
byteArray[i] = (byte) Integer.parseInt(stringArray[i]);
}
首先,转换为字符串数组。然后,您在该数组中进行迭代,并将每个元素转换为 int,然后转换为 byte 并将其分配给字节数组。
TA贡献1799条经验 获得超9个赞
当您获取请求正文时,Map<String, Object>获取字节数组的唯一方法是解析“stringyfied”字节数组并构建结果字节数组。
就像是:
String byteArrayAsStr = request.get("message").toString();
// First get only the "string-numeric" values (storing them into a String[]
String[] byteValues = byteArrayAsStr.substring(1, byteArrayAsStr.length() - 1).split(",");
byte[] messageBytes = new byte[byteValues.length];
// then we store each parsed byte value into our result byte[] (messageBytes)
for (int i=0, len=messageBytes.length; i<len; i++) {
messageBytes[i] = Byte.parseByte(byteValues[i].trim()); // trim not necessary in your case, as you send your array without spaces after commas
}
[...]
如果您找不到更好的方法来直接以所需类型获取请求正文(使用适当的 DTO),则可以采用这种方法。
添加回答
举报