我的程序要求时间,我正在按":"
分割时间。出于某种原因,如果我输入之前带有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);
}
}
答案 0 :(得分:2)
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);
答案 1 :(得分:1)
问题是Integer.parseInt()
电话。当你传递一些带有前导零的字符串时,它们将被删除,结果是一个自然数。如果你想看到前导零,只需写:
String departureHour = parts[0];
String departureMinute = parts[1];
System.out.println(departureHour + " " + departureMinute);