Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.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 为什么songName[i]!=null在应为F时计算为T_Java - Fatal编程技术网

Java 为什么songName[i]!=null在应为F时计算为T

Java 为什么songName[i]!=null在应为F时计算为T,java,Java,我需要分割给定的数组并打印不带WUB的字符串。下面应该打印ABC,而不是打印,,ABC。要能够打印,,ABC,它需要满足条件songName[i]!=null,对于这些情况,它应该返回F。对Java和编程来说还是新手 import java.util.Arrays; class Main { public static void main(String[] args) { String SongDecoder = ""; String song = "WUBWUBABCW

我需要分割给定的数组并打印不带WUB的字符串。下面应该打印ABC,而不是打印,,ABC。要能够打印,,ABC,它需要满足条件songName[i]!=null,对于这些情况,它应该返回F。对Java和编程来说还是新手

import java.util.Arrays;

class Main {
  public static void main(String[] args) {

    String SongDecoder = "";
    String song = "WUBWUBABCWUB";
    String[] songName = song.split("WUB");
    int cnt=0;


    for (int i = 0; i < songName.length; i++){
      if (songName[i]!= null){
        if(cnt == 0){
          SongDecoder = songName[i];
          cnt+=1;
        } else {
        SongDecoder = SongDecoder+","+songName[i];
        }
      }
    }

System.out.println(SongDecoder);
System.out.println(Arrays.toString(songName));
  }
}
当两个分隔符之间没有字符时,split返回空字符串,而不是null

因此,除了空检查外,还应检查空字符串:

或者,实际上,在这种情况下,检查字符串是否为空就足够了,因为它不能为null:

if (!songName[i].isEmpty())

它只是检查数组的元素是否实际上是一个实例,而不是null。它只能返回true或false,如果元素为null,则返回false,true otherwisesplit不会返回null,而是返回空段?或者尤达风格。equalssongName[i]
if (!songName[i].isEmpty())