我制作了一个成功的纸牌洗牌程序,该程序在运行时将纸牌的纸牌数作为用户输入,并在输出文本文件的单独一行上打印每张纸牌。
我想对如果卡片组在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
您正在使用%d格式说明符,但您尝试使用格式说明符设置的值String.valueOf(tempValue)是String。如果tempValue是您要格式化的数字,则
currentCard= String.format("%0"+ deckLimit.length() + "d", tempValue);
是您想要的代码。
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。