当我将变量从String
转换为Integer
时,我正在从变量中丢失前导零,
String[] parts = Firsttt.split(":");
String part1 = parts[0]; // Hour
String part2 = parts[1]; // Minute
Integer part1int = (Integer.valueOf(part1));
part1int++;
Firsttt = part1int +":"+ part2;
是否有正确的方法可以在不丢失前导零的情况下执行此操作,还是应该更改结果以再次包含零?
即:Firsttt = "0" + part1int +":"+ part2;
再次添加零的问题是变量并不总是包含零,所以只检查没有更好的方法。 谢谢
答案 0 :(得分:5)
Integer
没有前导零或任何其他格式属性。这只是一个数字。
如果您希望打印输出包含前导零,建议您使用String#format()
。要在0
低于part1Int
时始终获得领先10
,请使用:
String.format("%02d:%s", part1Int, part2);
答案 1 :(得分:2)
如果你不想去寻找幻想String.format()
,你可以按自己的方式使用
if (part1int / 10 > 0) {
Firsttt = part1int + ":" + part2;
} else {
Firsttt = "0" + part1int + ":" + part2;
}
答案 2 :(得分:1)
当且仅当part1int低于10时,您可以添加前导零,或者使用带有填充0的某些格式:
Firsttt = String.format("%02d:%d", part1int, part2);
答案 3 :(得分:1)
尝试
Firsttt = String.format("%02d:%s", part1int, part2);
如果需要,这将添加前导零。