Javaファイル出力:数は、実行時にのみ知られているカードの枚数とカードデッキのためにエラーを書式設定

トニ・スタック:

私は、実行時にユーザー入力としてデッキのカードの数を取り、出力テキスト・ファイル内の別の行に各カードを印刷し成功したカードのシャッフルプログラムを作りました。

デッキは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);   

あなたが欲しいのコードです。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=282118&siteId=1