java - 如何在 Java 中测试字符串索引是否为 Null

标签 java arrays string

当我运行以下代码时,出现“java.lang.NullPointerException”:

    while(StringName[PlaceString] != null){
      StringCounter = 0;
        while(StringCounter < StringName[PlaceString].length()){
          System.out.println("PlaceString: " + PlaceString + " PlaceLine: " 
          + PlaceLine + " Length of string: " + StringName[PlaceString].length());
          //Does stuff with string
    }}

输出为:

    PlaceString: 0 PlaceLine: 0 Length of string: 2
    Exception in thread "main" java.lang.NullPointerException

错误的根源是:

    while(StringCounter < StringName[PlaceString].length()){

尽管它运行打印变量值的下一行。我不明白为什么它在可以打印 NullPointer 的值时提示 NullPointer。

编辑: 由于我没有收到 java.lang.StringIndexOutOfBoundsException,问题是:

Java substring : string index out of range

没有帮助。

最佳答案

您没有显示所有相关代码,但根据异常及其位置,您很可能在内部 while 期间设置了 PlaceString 的值:

while(StringCounter < StringName[PlaceString].length()){
      System.out.println("PlaceString: " + PlaceString + " PlaceLine: " 
      + PlaceLine + " Length of string: " + StringName[PlaceString].length());
      //Does stuff with string
       StringCounter++; // or something close
}

在某个迭代中,StringName[PlaceString] 引用 null 元素。
因此 NPE 被抛出。

外部的while在这里没有帮助:

while(StringName[PlaceString] != null){

因为在内循环终止迭代之前它不会执行。

因此,您可以通过在内部 while 中添加防护来避免 NPE:

while(StringName[PlaceString] != null && StringCounter < StringName[PlaceString].length()){
      System.out.println("PlaceString: " + PlaceString + " PlaceLine: " 
      + PlaceLine + " Length of string: " + StringName[PlaceString].length());
      //Does stuff with string
}

关于java - 如何在 Java 中测试字符串索引是否为 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48268635/

相关文章:

string - 获取字符串的前十个字符

Java 类加载器更改

java - AEM - We Retail 网站上的自定义实现

javascript - 我有一个具有父 id 的平面数组,我想将其嵌套起来,就像使用 javascript 的树父子数组一样

javascript - 使用 jQuery 的 ajax() 函数将 javascript 数组或其值传递给 servlet 的最简单方法

ruby - 字符串包含

regex - 将字符串中的多个Unicode转为字符

java - 如何在jsp中找到第一个请求

java - 如何用java以只读方式打开文件?

javascript - Frisby ExpectJSON 包含无序列表