您的位置:首页 > 编程语言 > Java开发

java数组使用equals()方法报空指针问题

2016-08-10 20:48 399 查看
在学习使用数组的过程中遇到一个问题,用scanner为数组赋值后,使用equals()方法报空指针错误

import java.util.Scanner;

public class Test {
public static void main(String[] args) {
// 新建数组存放3个DVD信息
String[] names = new String[6];
names[0] = "罗马假日";
names[1] = "风声鹤唳";
names[2] = "浪漫满屋";
Scanner input = new Scanner(System.in);

System.out.println("-->借出DVD");
System.out.println("请输入要借出的DVD的名字:");
String want = input.next();
for (int i = 0; i < names.length; i++) {
if (names[i].equals(want)) {
System.out.println("借出DVD成功!");
}
}
}
}Exception in thread "main" java.lang.NullPointerException

    at Manager.main(Manager.java:130)



经过一番的查找资料,问题在names数组有null的存在,names[3],names[4],,names[5]未被赋值,其值默认为null

当names[]调用equals()方法时,equals检测到有null的存在就会报错

对此我对程序作了修改,如下:

import java.util.Scanner;

public class Test {
public static void main(String[] args) {
// 新建数组存放3个DVD信息
String[] names = new String[6];
names[0] = "罗马假日";
names[1] = "风声鹤唳";
names[2] = "浪漫满屋";
Scanner input = new Scanner(System.in);

System.out.println("-->借出DVD");
System.out.println("请输入要借出的DVD的名字:");
String want = input.next();
for (int i = 0; i < names.length; i++) {
if(names[i] == null){
System.out.println("DVD不存在.");
break;
}else if(names[i].equals(want)){
System.out.println("DVD借出成功.");
break;
}
}
}
}
通过if语句加一个判断names[i]是否为null,当names[i]为null时,表明数组中没有和你输入的值相等的值,则输出"DVD不存在",break出循环
当数组中有和输入的值相等的值时,则显示"DVD借出成功",再break出循环

希望能帮助到大家~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java equals string
相关文章推荐