トニ・スタック:
私は、実行時にユーザー入力としてデッキのカードの数を取り、出力テキスト・ファイル内の別の行に各カードを印刷し成功したカードのシャッフルプログラムを作りました。
デッキは10〜99枚のカードであった場合、私は、ファイル09を介して01として9までの数字1を含む行の代わりに出力だろうへの改善を作りたかったです。
私は読んでみましたhttps://javadevnotes.com/java-integer-to-fixed-length-stringをして私のプログラムにそれを適応しました。それはJgrasp IDE上で正常にコンパイルが、実行時に、その後のデッキに出力ファイル名をカードの番号を入力した後、プログラムはライン上の違法なフォーマット変換例外で終了しました。
currentCard= String.format("%0"+ deckLimit.length() + "d", String.valueOf(tempValue));
これが起こらないように、どうすれば修正できますか?
Relevent変数:
String currentCard;
int tempValue;
int deckSize;
String deckLimit;
deckSize = read.nextInt();
deckLimit = String.valueOf(deckSize);
問題の行:
currentCard= String.format("%0"+ deckLimit.length() + "d", String.valueOf(tempValue));
ケビン・アンダーソン:
あなたが使用している%d
、書式指定子を、その値は、あなたがそれをフォーマットしようとしているString.valueOf(tempValue)
、ですString
。場合はtempValue
、その後、あなたがフォーマットされた先の番号です
currentCard= String.format("%0"+ deckLimit.length() + "d", tempValue);
あなたが欲しいのコードです。