我的程序要求时间,我用 ":"
来分配时间。出于某种原因,如果我之前输入带有 0
的内容作为第一个值,它会将其删除。知道它为什么这样做吗?
这是我的代码:
import java.util.Scanner;
public class ArrivalTime {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean rushHour;
System.out.print("Enter The Time Fiona Will Leave For Work (HH:MM): ");
String departureTime = sc.nextLine();
String parts[] = departureTime.split(":");
int departureHour = Integer.parseInt(parts[0]);
int departureMinute = Integer.parseInt(parts[1]);
System.out.println(departureHour + " " + departureMinute);
}
}
最佳答案
int departureHour = Integer.parseInt(parts[0]);
int departureMinute = Integer.parseInt(parts[1]);
System.out.println(departureHour + " " + departureMinute);
Integer.parseInt(ANY_INTEGER_VALUE)
返回整数。例如Integer.parseInt(03)
将返回 3 而不是 03。
如果要显示给定的输入
03:09
因为它是,你应该保持显示的字符串:
System.out.println (parts[0] + " " + parts[1]);
解析为 int 仅用于计算目的。
注意:我在阅读@Elliot 的评论后编辑了以下部分。
或者正如@Elliot 在他的评论中指定的那样:
System.out.printf("%02d %02d%n", departureHour, departureMinute);
关于java - Integer.parseInt 删除前导 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42097336/