Les 0 d'un hexa

Résolu
hindou23 Messages postés 42 Date d'inscription lundi 7 septembre 2009 Statut Membre Dernière intervention 20 octobre 2011 - 1 août 2011 à 18:28
hindou23 Messages postés 42 Date d'inscription lundi 7 septembre 2009 Statut Membre Dernière intervention 20 octobre 2011 - 2 août 2011 à 13:46
Bonjour tout le monde,

Je recois une réponse de mon serveur sous forme d'hexa mais au lieu qu'elle m'affiche le nombre avec le 0 par exemple 03 ou 04 ca m'affiche 3 4 5 ...

Voici le code de la reception :
public String receive() {

String reponse = "";

//String reponsetemp;

char[] out = new char[1000];
int nbread;
try {
BufferedReader is = new BufferedReader (new InputStreamReader(this.socket.getInputStream()));
nbread = is.read(out);

// Close the Connection
is.close();
this.socket.close();

} catch (IOException e) {
System.err.println("Exception receive: " + e.getMessage());
return null;

}



for (int i = 0; i < nbread ; i++){


}
reponse = reponse + String.format("%s",Integer.toHexString(out[i]));


System.out.println("La reponse est " +reponse);

}
return reponse;
}


Merci pour votre aide.

7 réponses

cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 11
2 août 2011 à 02:43
Salut,


en fait il me semble que tu fait la démarche inverse dans ta methode ;o)
Au lieu de :
reponse = reponse + String.format("%s",Integer.toHexString(out[i]));

essais ce format...
reponse = reponse + String.format("%02X", (int)out[i]);

la methode format est réelement très puissante ;o) ...
ce format converti un integer en hexa sur une longueur de 2 caractères complété à gauche par des 0... Je pense que c est ce que tu voulais faire?!! ;o)

GodConan ;o)
3
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
1 août 2011 à 18:35
Bonjour,

C'est normal, ton String est parsé en integer, les 0 sont donc supprimés et tu ne peux pas obtenir le format initial.

Si tu ajoutes à 1 devant à la place du 0, le format sera le bon, tu peux donc ajouter le 0 manuellement s'il n'est pas là
0
hindou23 Messages postés 42 Date d'inscription lundi 7 septembre 2009 Statut Membre Dernière intervention 20 octobre 2011
1 août 2011 à 18:46
Je n'ai pas compris exactement ce que vous voulez dire!!! comment ajouter un 0 manuellement???

Je dois recevoir la réponse du serveur telle qu'elle est!!!
0
hindou23 Messages postés 42 Date d'inscription lundi 7 septembre 2009 Statut Membre Dernière intervention 20 octobre 2011
1 août 2011 à 19:18
Est ce que le zero existe toujours ou il l'a enlevé???

Si je voudrais faire un cryptage pour tout une chaine qui prendra 2 bits par 2 , est c qu'il va considérer le zero comme s'il existe toujours ou pas???

Merci pour votre réponse
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hindou23 Messages postés 42 Date d'inscription lundi 7 septembre 2009 Statut Membre Dernière intervention 20 octobre 2011
1 août 2011 à 19:21
Je voulais dire pour un traitement , non pas un cryptage!!!!
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
1 août 2011 à 22:57
Non, le zéro n'existe plus, pour comprendre ce qui se passe, tu peux exécuter ce code, ce n'est pas exactement la même chose mais on s'en approche :

String chaine = "01"
System.out.println(chaine);//Le 0 est là
int entier = Integer.parseInt(chaine);
System.out.println(entier);//Le 0 n'est plus là
String res = ""+entier;
System.out.println(res);//Le 0 n'est pas là


Pour l'ajouter manuelment, tu peux faire un truc du genre
if(nombre.length==1){
nombre="0"+nombre;
}

Ca n'aura aucune influence sur les autres nombres.

Si tu ne veux vraiment pas retoucher cette chaîne tu es coincé (du moins avec ta façon de faire, il n'y a pas bien de raison de faire la conversion pour envoyer tes données)
0
hindou23 Messages postés 42 Date d'inscription lundi 7 septembre 2009 Statut Membre Dernière intervention 20 octobre 2011
2 août 2011 à 13:46
Merci pour votre aide, j'ai réussi à resoudre mon probléme !!!
0
Rejoignez-nous