【问题标题】:Scanner and nullPointerException [closed]扫描仪和 nullPointerException [关闭]
【发布时间】:2012-12-15 19:43:24
【问题描述】:

我不知道为什么我会得到这个异常! 我的方法很简单,它会循环填充我的并行数组 这是我的方法

public void fillPhoneBook(){
    Scanner in = new Scanner(System.in);
    for(int i=0;i<this.names.length;i++){
        System.out.println("Enter Name:");
        this.names[i] =in.next();
        System.out.println("Enter Phone Number:");
        this.telephones[i]=in.next();//here start rising exception 
    }
    in.close();

我在第二次输入后得到这个异常!`

--- 更新 ---

抱歉问题出在初始化电话数组

【问题讨论】:

  • 你在哪里初始化了你的数组?特别是telephones数组?
  • 请写下你的完整课程代码。
  • 我已经初始化了构造函数中的所有值
  • 可以添加初始化代码吗?编辑:没看到你写了它发生的地方。对不起。
  • 您将要使用nextLine 而不是next。那当然是在你修复 NPE 之后。

标签: java arrays input nullpointerexception java.util.scanner


【解决方案1】:

我已经创建了与您解释的相同的场景,但奇怪的是我没有遇到任何此类异常。请看下面的代码

public class TestScanner {
    String names[] = new String[10];
    String telephones[] = new String[10];

    public static void main(String a[]) {

        TestScanner p = new TestScanner();

        Scanner in = new Scanner(System.in);
        for (int i = 0; i < p.names.length; i++) {
            System.out.println("Enter Name:");
            p.names[i] = in.next();
            System.out.println("Enter Phone Number:");
            p.telephones[i] = in.next();// here start rising exception
        }
        in.close();

    }
}

输出

Enter Name:
test1
Enter Phone Number:
123456
Enter Name:
test2
Enter Phone Number:
456789
Enter Name:

【讨论】:

  • 我认为他未能正确初始化它。这就是你在本地所做的。
  • 那是我在代码注释中写的,请写完整的代码,以便我们解决问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-19
  • 2014-06-29
  • 1970-01-01
  • 2023-04-05
  • 2018-08-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多