Bom dia Pessoal,
Estou com um problema em formatar uma String, onde a mesma vem de um cálculo que converto para Hexadecimal. Necessito que se o resultado venha apenas com uma casa, coloque ‘0’ na frente. Veja o código:
// Metodo para Calculo CS
public static String calculo (String cs) {
int chk = 0;
for(int i = 0 ; i < cs.length() ; i++){
if (cs.charAt(i) == '*')
break;
else {
char carac = cs.charAt(i);
chk = chk ^ carac;
}
}
// Converte de Hexa para String e coloca em Maúsculas as letras Hexas
return Integer.toHexString(chk).toUpperCase();
} // fim metodo Calculo CS
Já testei com o metodo abaixo, porém me retorna um erro:
String.format("%02d", Integer.toString(chk, 16))
Erro:
[color=red]
Exception in thread “main” java.util.IllegalFormatConversionException: d != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Unknown Source)
at java.util.Formatter$FormatSpecifier.printInteger(Unknown Source)
at java.util.Formatter$FormatSpecifier.print(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.util.Formatter.format(Unknown Source)
at java.lang.String.format(Unknown Source)
at Checksum.calculo(Checksum.java:28)
at CheksumTest.main(CheksumTest.java:13)
[/color]
Agradeço desde já a ajuda!