我正在研究一个java代码,假设你在代码中设置的时间和系统中的实时时间相等,如果时间不匹配则完全忽略它。现在我可以正确地得到时间,但由于某种原因,if语句说它不相等,即使它是。我有什么遗漏或做错了吗?
Calendar now = new GregorianCalendar();
String am_pm;
int hour = now.get(Calendar.HOUR);
int minute = now.get(Calendar.MINUTE);
if (now.get(Calendar.AM_PM) == 0){
am_pm = "AM";
}
else{
am_pm = "PM";
}
String time = hour + ":" + minute + " " + am_pm;
String Scan_hour = "2:45 PM";
System.out.println(time + "--" + Scan_hour);
if (time == Scan_hour){
System.out.println("Time matchs");
}
else{
System.out.println("Time Doesn't Match");
}
答案 0 :(得分:1)
if (time == Scan_hour){
应该是
if (time.equals(Scan_hour)){
字符串比较应使用equals()
而不是==
(String
文字除外)。
==
检查引用相等性(两个引用都指向同一个对象)。 equals()
检查内容是否相等。