Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查字符串数组元素是否为空_Java_Arrays_String_Null - Fatal编程技术网

Java 检查字符串数组元素是否为空

Java 检查字符串数组元素是否为空,java,arrays,string,null,Java,Arrays,String,Null,因此,我查看了一些关于这个问题的其他线程,似乎我应该能够使用常规比较运算符来检查这个问题 但是,即使我的程序说字符串为null,它稍后也会通过执行if语句来反驳这一点,条件是字符串不为null。更清楚地说,以下是我的完整计划: package bank; public class HowCheckForNull { static void showDates(String[] dates){ for(int i = 0; i < dates.length;

因此,我查看了一些关于这个问题的其他线程,似乎我应该能够使用常规比较运算符来检查这个问题

但是,即使我的程序说字符串为null,它稍后也会通过执行if语句来反驳这一点,条件是字符串不为null。更清楚地说,以下是我的完整计划:

package bank;

public class HowCheckForNull {

    static void showDates(String[] dates){
        for(int i = 0; i < dates.length; i++){
            System.out.println(dates[i]);
            System.out.println(dates[i] == null);
            System.out.println(dates[i] == (String) null);
            System.out.println(dates[i] != null);
            if(dates[i] != null);{ //This should not execute!?
                System.out.print("A transaction of X$ was made on the " + dates[i] + "\n");
            }
        }
        System.out.println("");
    }

    public static void main(String args[]){
        String[] dates = new String[3];
        showDates(dates);
    }
    }
这里有两件事让我困惑,为什么即使日志显示不是这样,仍要执行
if
语句,而且
dates[i]
怎么可能同时等于
null
(String)null

if(dates[i] != null);
                    ^

额外的;使下面的块始终执行(无论if语句的计算结果如何),因为它结束if语句。删除它。

问题是“;”在
if(条件)之后
结束语句并以正常方式处理剩余代码段,而不考虑任何条件

代码

    package bank;

    public class HowCheckForNull {

        static void showDates(String[] dates){
            for(int i = 0; i < dates.length; i++){
                System.out.println(dates[i]);
                System.out.println(dates[i] == null);
                System.out.println(dates[i] == (String) null);
                System.out.println(dates[i] != null);
                if(dates[i] != null){ //Now it will not execute.
                    System.out.print("A transaction of X$ was made on the " + dates[i] + "\n");
                }
            }
            System.out.println("");
        }

        public static void main(String args[]){
            String[] dates = new String[3];
            showDates(dates);
        }
    }
null
true
true
false
null
true
true
false
null
true
true
false
null
true
true
false
null
true
true
false
null
true
true
false