即使表达式为假也将运行IF语句

时间:2019-10-24 04:43:45

标签: java android

我正在创建一个Android Studios任务列表应用程序。由于某种原因,即使表达式为假,也会调用IF语句,从而在运行时产生错误。下面提供了代码:

if (taskArray5.get(0).equals( "Goal Time Not Specified") ) {

    Log.d("hello", taskArray5.get(0).getClass().toString());
    Log.d("hello", taskArray5.get(0));
    String[] localTimeList = localTime.split(":");
    String previouslySetTime = taskArray5.get(0).substring(0, taskArray5.get(0).length() - 5);
    String[] previouslySetTimeList = previouslySetTime.split(":");
    Integer localTimeHours = Integer.parseInt(localTimeList[0]);
    Integer localTimeMinutes = Integer.parseInt(localTimeList[1]);
    Integer localTimeSeconds = Integer.parseInt(localTimeList[2]);
    char AMORPM = taskArray5.get(0).charAt(taskArray5.get(0).length() - 4);
    Integer previouslySetTimeHours;
    if (AMORPM == 'A') {
        previouslySetTimeHours = Integer.parseInt(previouslySetTimeList[0]);
    } else {
            previouslySetTimeHours = Integer.parseInt(previouslySetTimeList[0]) + 12;
    }

我使用Log.d确认taskArray5.get(0)是具有特定值“未指定目标时间”的字符串。另外,使用equals()函数也不能解决问题。我究竟做错了什么?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

在这种情况下要做的事情:

使用断点,有时仅记录日志是不够的,您可能会遗漏某些东西,即,当您认为它被调用或可能被多次调用时,就不会调用它

您写道:  taskArray.get(0)是具有特定值“未指定目标时间”的字符串,但是您在代码中使用了taskArray5。另外,如果它具有条件所必需的特定值,则输入该值不正常吗?