-1

可能重复:
如果使用 == 的语句给出了意外的结果

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

1 回答 1

1
if (time == Scan_hour){

应该

if (time.equals(Scan_hour)){

字符串比较应该使用equals()代替==(文字情况除外String)。

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

于 2012-11-15T19:53:39.990 回答