.equals方法即使字符串内容相同也返回false

时间:2019-03-28 10:46:06

标签: java android

所以我试图将系统时间与时间选择器中输入的时间进行比较

为此,我将系统时间放置在一个字符串中,该字符串是变量cTime,并且是从时间选择器输入的时间,该时间在变量eTime中。

在执行此操作之前,我首先使用“ HH:mm”模式对系统时间进行了格式化,并在eTime中的小时和分钟前放置了“:”。

这是我的密码。

    Date now = Calendar.getInstance().getTime();
    cTime =  currentTime.format(now);
    eTime = String.valueOf(endTime.getCurrentHour()) + ":" + 
    String.valueOf(endTime.getCurrentMinute());

    if(eTime.length() == 1) {
     eTime = "0" + eTime;
    }

    if(eTime.equals(cTime)) {
     String message = "Please select time properly";
     warnUser(message);
     return;
    }

进行了一些检查之后,我发现if语句中的.equals方法返回false。

3 个答案:

答案 0 :(得分:0)

通常.equals正确比较两个对象的内容,我已经用String类型使用它很多次了,所以请检查cTime和eTime的输入是否正确,可能存在一些额外的空格或'\ n'字符。

答案 1 :(得分:0)

使用Date而不是字符串eTime和cTime,或者与equalignorecase比较,它将起作用。

答案 2 :(得分:0)

在进行了一些代码检查之后,我发现我在当前时间之前添加了一个额外的空间,并变成了这样的“ 17:23”,并且在删除该空间后,它现在可以工作了。感谢您的帮助