“IllegalFormatConversionException: d != java.lang.String" bei der Polsterung Reihe, die mit 0EN?
Hatte ich eine perfekt funktionierende code-gestern, in der genauen form:
int lastRecord = 1;
String key = String.format("%08d", Integer.toString(lastRecord));
Dem pad würde es schön zu 00000001.
Nun ich trat es herauf eine Kerbe mit twoKeyChar immer ein string aus einer Tabelle und lastRecord immer ein int, die aus einer Tabelle.
Als, können Sie sehen, das Konzept ist im wesentlichen das gleiche - ich umwandeln eines int in einen string und versuchen pad mit 0s; dieses mal jedoch bekomme ich die folgende Fehlermeldung:
java.util.IllegalFormatConversionException: d != java.lang.String
Den code ist unten:
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);
}
Ich das Gefühl, ich muss etwas Falsches eingegeben haben, denn es gibt keinen Grund für Sie zu brechen, die seit dem letzten mal, als es funktionierte. Jede Hilfe/Hinweis dankbar! Danke!
In der menschlichen form ist, sagt, dass "der Formatbezeichner
d
gilt nicht für String-Werte".InformationsquelleAutor Metal Wing | 2012-06-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Brauchen Sie nicht die
Integer.toString()
:String.format()
tun die Konvertierung und die Polsterung.Seine nicht, dass Sie nicht tun MÜSSEN Sie die toString, aber mehr mag Sie NICHT. Das "d" in der das erste argument in String-format erwartet eine dezimale Ganzzahl. Daher der Fehler.
InformationsquelleAutor NPE