ENCODER UN ENTIER DANS UNE AUTRE BASE

tarzent Messages postés 30 Date d'inscription vendredi 12 juillet 2002 Statut Membre Dernière intervention 15 mai 2009 - 4 oct. 2005 à 10:42
tarzent Messages postés 30 Date d'inscription vendredi 12 juillet 2002 Statut Membre Dernière intervention 15 mai 2009 - 4 oct. 2005 à 10:42
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33836-encoder-un-entier-dans-une-autre-base

tarzent Messages postés 30 Date d'inscription vendredi 12 juillet 2002 Statut Membre Dernière intervention 15 mai 2009
4 oct. 2005 à 10:42
Salut,

Sans juger de l'utilité de ta source, ça serait mieux si tu ne répetais pas quasiment 3 fois tes méthodes encode ;-)

Essaie ça:

################################################################################

public String encode(int value, final String monCode, final int length) {
final String name = getClass().getName();
final int codeLength = monCode.length();
System.out.println(name + ".encode value=" + value);
System.out.println(name + ".encode monCode=" + monCode);
System.out.println("codeLength=" + codeLength);
final StringBuffer result = new StringBuffer();
while (value > 0) {
System.out.println(name + ".encode value=" + value);
final int reste = value % codeLength;
System.out.println(name + ".encode reste=" + reste);
value = value / codeLength;
result.insert(0, monCode.charAt(reste));
System.out.println(name + ".encode result=" + result);
}
// C'est mieux de savoir quelle genre d'exception est levée.
// En plus, pas besoin de throws dans le prototype.
if(result.length() > length)
throw new IllegalArgumentException();
while (result.length() < length)
result.insert(0, monCode.charAt(0));
return result.toString();
}

public String encode(final int value, final String monCode){
return encode(value, monCode, -1);
}

public String encode(final int value) {
return encode(value, CODE, -1);
}
Rejoignez-nous