J'ai une chaîne de uns et de zéros que je veux convertir en un tableau d'octets.
Par exemple String b = "0110100001101001"
Comment puis-je convertir cela en un byte[]
de longueur 2 ?
J'ai une chaîne de uns et de zéros que je veux convertir en un tableau d'octets.
Par exemple String b = "0110100001101001"
Comment puis-je convertir cela en un byte[]
de longueur 2 ?
En supposant que votre chaîne binaire peut être divisée par 8 sans obtenir de reste, vous pouvez utiliser la méthode suivante :
/**
* Get an byte array by binary string
* @param binaryString the string representing a byte
* @return an byte array
*/
public static byte[] getByteByString(String binaryString){
Iterable iterable = Splitter.fixedLength(8).split(binaryString);
byte[] ret = new byte[Iterables.size(iterable) ];
Iterator iterator = iterable.iterator();
int i = 0;
while (iterator.hasNext()) {
Integer byteAsInt = Integer.parseInt(iterator.next().toString(), 2);
ret[i] = byteAsInt.byteValue();
i++;
}
return ret;
}
N'oubliez pas d'ajouter le librairie guava à vos dépendances.
Dans Android, vous devez ajouter à l'application gradle :
compile group: 'com.google.guava', name: 'guava', version: '19.0'
Et ajoutez ceci dans le projet gradle :
allprojects {
repositories {
mavenCentral()
}
}
Mise à jour 1
Ce message contient une solution sans utiliser Guava Lib.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.