![](/img/trans.png)
[英]Java HW, Printing out a multidimensional array of Ints, with Strings/characters
[英]Printing out strings in an array while not printing the null, Java
当我运行我的方法打印出数组时,它会给我一个NullPointerException,我不知道如何让它只打印我想要的东西。 假设我希望Array [0]为“Sally”而Array [3]为“Jeff”,我希望它打印出0,Sally 3,Jeff。 同时保留阵列的所有空槽。
这是我的代码:
public void printAll()
{
for(int i = 0; i <= 10; i++)
{
if(seats[i].equals(null))
{
System.out.print(i + " , " + seats[i] + "\n");
}
}
}
任何帮助将不胜感激,如果我太模糊,我可以回复更多的细节。
你需要:
if (seats[i] != null)
使用equals
将导致取消引用,这正是您要避免的。
你不应该使用:
if(seats[i].equals(null))
这种情况本身会引发NPE
。 你应该使用:
if(seats[i] != null)
将if(seats[i].equals(null))
更改为if(seats[i].equals(null))
if(seats[i] != null)
或if(seats[i] == null)
if(seats[i].equals(null))
if(seats[i] == null)
以避免NPE。
因为,如果seats[i]
为null
,则无法在null
引用上调用方法。
您可能希望使用以下内容:(您正在检查对象的相等性,而不是数组项是否为null。
public void printAll()
{
...
if (seats != null) {
for (int i=0; i < seats.size(); i++) {
if (seats[i] != null) {
System.out.println(i + ", " + seats[i]);
}
}
}
}
if(seats[i].equals(null)) {
System.out.print(i + " , " + seats[i] + "\n");
}
这导致空指针异常,因为seats[i]
等于null。 如果有空对象,则无法引用它。 完全没有。 这是合乎逻辑的,因为如果你什么都没有,那你就不能问它有什么。
要解决这个问题,检查某些东西是否等于null的最佳方法是if(Object == null)
,如果它不是null, if(Object != null)
。 通过您可能拥有的任何代码,这些都很常见。
贾罗德。
public static void printAll(){
String[] seats={"Jerry","chen","Jack"};
for(int i = 0; i <seats.length; i++)
{
if(!seats[i].equals(null))
{
System.out.print(i + " , " + seats[i] + "\n");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.