开发者社区> 问答> 正文

Java文件输出:卡片组的数字格式错误,其中只有在运行时才知道卡片数

我制作了一个成功的纸牌洗牌程序,该程序在运行时将纸牌的纸牌数作为用户输入,并在输出文本文件的单独一行上打印每张纸牌。

我想对如果卡片组在10到99张卡片之间的位置进行改进,则文件将输出包含数字1到9的行作为01到09。

我尝试阅读https://javadevnotes.com/java-integer-to-fixed-length-string并将其适应于我的程序。它在Jgrasp IDE上成功编译,但是在运行时,先输入卡座中的卡数然后输入输出文件名,然后该程序在行上以非法格式转换异常终止:

currentCard= String.format("%0"+ deckLimit.length() + "d", String.valueOf(tempValue));

我该如何解决,这样才不会发生?

相关变量:

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));

问题来源:Stack Overflow

展开
收起
montos 2020-03-26 12:14:27 540 0
1 条回答
写回答
取消 提交回答
  • 您正在使用%d格式说明符,但您尝试使用格式说明符设置的值String.valueOf(tempValue)是String。如果tempValue是您要格式化的数字,则

     currentCard= String.format("%0"+ deckLimit.length() + "d", tempValue);   
    

    是您想要的代码。

    回答来源:Stack Overflow

    2020-03-26 12:14:49
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载