Comment faire pour convertir un tableau de Chaîne en un tableau d'Octets? (java)
J'ai un unidimensionnel tableau de Chaîne que je veux convertir en un dimensions du tableau d'octets. Comment dois-je faire? Cela représente ByteBuffer? Comment puis-je faire cela? (Les chaînes de caractères peuvent être n'importe quelle longueur, je veux juste savoir comment faire un tel acte. Et après vous le convertir en un tableau d'octets comment pourrais-je me reconvertir dans un tableau de chaînes?
-Dan
Vous pouvez effectuer une itération pour chaque chaîne et de garder l'ajout à la finale du tableau d'octets.Exemple de chaîne = "Ceci est un exemple"; //convertit une Chaîne d'octets[] à l'aide .getBytes() la fonction byte[] bytes = exemple.getBytes(); //Convertir byte[] à l'aide de la Chaîne de new String(byte[]) String s = new String(octets);
Avez-vous vu cette question? stackoverflow.com/questions/1536054/...
Ali B - je pense que la question que vous avez lié répond à une question légèrement différente - surtout quand on voit la accepté de répondre, ce qui souligne à juste titre que "si vous voulez vraiment de stocker des données binaires dans un type de Chaîne, vous devez utiliser l'encodage Base64.
Il est nounique représentation d'une chaîne d'octets. Ce codage de caractères voulez-vous utiliser?
Avez-vous vu cette question? stackoverflow.com/questions/1536054/...
Ali B - je pense que la question que vous avez lié répond à une question légèrement différente - surtout quand on voit la accepté de répondre, ce qui souligne à juste titre que "si vous voulez vraiment de stocker des données binaires dans un type de Chaîne, vous devez utiliser l'encodage Base64.
Il est nounique représentation d'une chaîne d'octets. Ce codage de caractères voulez-vous utiliser?
OriginalL'auteur Dan Hoynoski | 2013-02-03
Vous devez vous connecter pour publier un commentaire.
Tableau à Tableau vous devez convertir manuellement avec l'analyse des deux côtés, mais si vous avez juste une Chaîne de caractères, vous pouvez
String.getBytes()
etnew String(byte[] data)
;comme ce
pour un byte[] à partir string[] vous devez:
décrit ci-dessus.
OriginalL'auteur Sergii Zagriichuk
Vous ne dites pas ce que vous voulez faire avec les octets (en dehors de convertir les ramener à un
String[]
par la suite), mais en supposant que vous pouvez juste de les traiter comme un sac opaque de données (de sorte que vous pouvez les enregistrer dans un fichier ou l'envoyer sur le réseau, ou autre chose, mais vous n'avez pas besoin de vérifier ou de modifier de quelque façon), je pense que votre meilleur pari est d'utiliser la sérialisation. Pour sérialiser vos string-array, vous pouvez écrire quelque chose comme:et le récupérer par la suite, vous devez écrire l'inverse:
OriginalL'auteur ruakh
Première déclarer la chaîne comme je l'ai déclaré ici
str="Suresh"
Deuxième utilisation
getBytes()
pour le convertir en octetsgetBytes retourne un tableau de byte.
OriginalL'auteur suresh chaudhari
String.getBytes()
? est ce que vous cherchez.vous pouvez tout d'abord de les enchaîner dans une grande chaîne, et ensuite d'obtenir des octets sur eux? @DanielH
il n'y a aucun moyen d'aller directement à partir de
String[]
àbyte[]
- vous aurez à parcourir votreString[]
et convertir chacun, puis la placer dans votrebyte[]
Je vous remercie. Je l'ai eu tout de travailler à partir de toutes les informations ive recueillies à partir de ces réponses. Merci encore
Err, la Chaîne n'a pas cette méthode. Au moins pas dans mon Java.
OriginalL'auteur Aniket Inge
Je voudrais traiter ce problème de sérialisation et juste mis en œuvre comme suit(complète et travailler de code Java):
L'idée est que dans le tableau d'octets nous stocker la longueur de la première chaîne(qui est toujours de 4 octets si nous utilisons le type
int
), suivie par les octets de la première chaîne(dont la longueur peut être lu plus tard à partir de la précédente 4 octets), puis suivie par la longueur de la deuxième chaîne, et les octets de la deuxième chaîne, et ainsi de suite. De cette façon, le tableau de chaîne peut être facilement récupéré à partir de la résultante tableau d'octets, comme l'a démontré par le code ci-dessus. Et cette sérialisation approche peut gérer n'importe quelle situation.Et le code peut être beaucoup plus simple si nous faisons une hypothèse à la chaîne d'entrée de tableau:
L'hypothèse est que
*.*
n'existe pas de chaîne à partir du tableau d'entrée. En d'autres termes, si vous savez à l'avance spéciale à la séquence de symboles n'apparaissent pas dans n'importe quelle chaîne de l'entrée de tableau, vous pouvez utiliser cette séquence que le séparateur.OriginalL'auteur Terry Li
Vous pouvez le vérifier
OriginalL'auteur Ali Siam
Vous pouvez effectuer une itération pour chaque chaîne et de garder l'ajout à la finale du tableau d'octets.
OriginalL'auteur sumeet kumar