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);
}
4 oct. 2005 à 10:42
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);
}