我几乎完成了我的程序然后突然出现了问题。如何在输出中输入空格或冒号而不会出现错误? 以下是我的输出结果的示例。
Factory
这是我的程序
TIME DIFFERENCE
Enter first time (hh:mm aa): 12 00 pm
Enter second time (hh:mm aa): 12:00 am
Do you wish to continue (Y/N)?:
n
The difference is 720 minutes and 0 seconds.
答案 0 :(得分:1)
您可以使用replaceFirst(" ",":")
在输入后用:
替换第一个空格。
System.out.print("TIME DIFFERENCE" + "\n\n"
+ "Enter first time (hh:mm aa): ");
String time1 = input.nextLine().replaceFirst(" ",":");
System.out.print("Enter second time (hh:mm aa): ");
String time2 = input.nextLine().replaceFirst(" ",":");
有了这个,样本交互将是:
第一次输入(hh:mm aa):12 56 pm
输入第二次(hh:mm aa):14 00 pm
你想继续(是/否)?:n
差异是784分0秒。
正如您所说,您可能需要同时使用这两种格式,然后您可以修改代码的这一部分:
DateFormat sdf = new SimpleDateFormat("hh:mm aa");
Date d1 = sdf.parse(time1);
Date d2 = sdf.parse(time2);
如下:
DateFormat sp_sdf = new SimpleDateFormat("hh mm aa");
DateFormat co_sdf = new SimpleDateFormat("hh:mm aa");
Date d1, d2;
try{
d1 = sp_sdf.parse(time1);
}catch(java.text.ParseException e){
d1 = co_sdf.parse(time1);
}
try{
d2 = sp_sdf.parse(time2);
}catch(java.text.ParseException e){
d2 = co_sdf.parse(time2);
}