Java-if语句在Time匹配时不起作用

时间:2012-11-15 19:52:10

标签: java if-statement time

  

可能重复:
  If statement using == gives unexpected result

我正在研究一个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");
}

1 个答案:

答案 0 :(得分:1)

if (time == Scan_hour){

应该是

if (time.equals(Scan_hour)){

字符串比较应使用equals()而不是==String文字除外)。

==检查引用相等性(两个引用都指向同一个对象)。 equals()检查内容是否相等。