Je suis un tableau d'octets envoyé de javascript par ajax qui ressemble à ceci:Java convertir la chaîne de tableau d'octets tableau d'octets
"89,50,4e,47,0d,0a,1a,0a,00,00,00,0d,49,48,44,52,00,00,01,98,00,00,00,e4,08,06,00 ..."
Je voudrais convertir cette chaîne à un tableau d'octets. assez similaire à cette question, mais en utilisant Java à la place: Convert String[] to byte[] array
Edit: Cela semble fonctionner - mais pas sûr si je fais droit
String[] byteData ="89,50,4e,47,0d,0a,1a,0a,00,00,00,0d,49,48,44,52,00,00,01,98,00,00,00,e4,08,06,00";
byte[] b = new byte[byteData.length];
for (int i = 0; i < byteData.length; i++) {
BigInteger bla = BigInteger.valueOf(Integer.parseInt(byteData[i].trim(), 16) - 128);
b[i] = bla.toByteArray()[0];
}
Avez-vous essayé du code vous-même? – ItamarG3
Vous avez ['String (byte []')] (https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#String (byte [])), vous venez de besoin de lire la chaîne pour décoder les octets un par un pour créer ce 'byte []', essayez et revenez si vous ne pouvez pas. – AxelH
Le processus général serait de 'String :: split' à la virgule, écrire une fonction' hexToDec() 'de conversion, soustraire 128 du résultat, puis lancer' byte'. Il n'y a pas de 'uByte' en Java, c'est pourquoi vous devez soustraire 128 du résultat – CraigR8806