«IllegalFormatConversionException: d != java.lang.String» при дополнении числа нулями?

Вчера у меня был отлично работающий код в точной форме:

int lastRecord = 1;
String key = String.format("%08d", Integer.toString(lastRecord));

Который дополнит его до 00000001.

Теперь я поднял его на ступеньку выше: twoKeyChar получает строку из таблицы, а lastRecord получает из таблицы целое число.

Как видите, концепция по существу та же самая — я конвертирую int в строку и пытаюсь дополнить ее нулями; однако на этот раз я получаю следующую ошибку:

java.util.IllegalFormatConversionException: d != java.lang.String

Код ниже:

String newPK = null;
String twoCharKey = getTwoCharKey(tablename);
if (twoCharKey != null) {
     int lastRecord = getLastRecord(tablename);
     lastRecord++;
     //The println below outputs the correct values: "RU" and 11. 
     System.out.println("twocharkey:"+twoCharKey+"record:"+lastRecord+"<");
     //Now just to make it RU00000011
     newPK = String.format("%08d", Integer.toString(lastRecord));
     newPK = twoCharKey.concat(newPK);
}

Я чувствую, что, должно быть, набрал что-то неправильно, потому что нет никаких причин для его поломки с тех пор, как в последний раз он работал. Любая помощь/подсказка приветствуется! Спасибо!

10
задан Metal Wing 5 June 2012 в 19:32
поделиться