失去领先" 0"从字符串转换为整数时为零

时间:2014-04-13 10:06:56

标签: java android integer int

当我将变量从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;

再次添加零的问题是变量并不总是包含零,所以只检查没有更好的方法。 谢谢

4 个答案:

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

如果需要,这将添加前导零