Java 为什么songName[i]!=null在应为F时计算为T
我需要分割给定的数组并打印不带WUB的字符串。下面应该打印ABC,而不是打印,,ABC。要能够打印,,ABC,它需要满足条件songName[i]!=null,对于这些情况,它应该返回F。对Java和编程来说还是新手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
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())