java - 扫描仪下一行问题

标签 java java.util.scanner

我正在编写一个读取以下输入的代码

3
Ruby
Diamond
Sapphire

这是我的程序

import java.util.Scanner;

public class GemStones {

    private int numOfStones;
    private String[] gemArray;

    public void solve() throws Exception{

        Scanner in = new Scanner(System.in);

        //Reading the integer
        numOfStones = Integer.parseInt(in.nextLine());
        //in.nextLine();
        System.out.println(numOfStones);


        //reading the strings
        for(int i=0;i<numOfStones;i++){
            gemArray[i] = in.nextLine();
            System.out.println(gemArray[i]);
        }


        for(int i=0;i<numOfStones;i++){
            System.out.println(gemArray[i]);
        }
        in.close();
    }


    public static void main(String[] args) throws Exception {
        GemStones check = new GemStones();
        check.solve();


    }

}

我在读取其后面的字符串时遇到问题。每当我尝试读取字符串时,它都会显示错误!请帮助我..

以下是我在控制台中收到的错误

3
Ruby
Diamond
Sapphire3Exception in thread "main" 
java.lang.NullPointerException
    at com.sudarabisheck.easy.GemStones.solve(GemStones.java:23)
    at com.sudarabisheck.easy.GemStones.main(GemStones.java:37)

最佳答案

您需要将数组初始化为,

gemArray = new String[numOfStones];

关于java - 扫描仪下一行问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25562045/

相关文章:

java - Akka future 与 Play 框架

java - 使用泛型的 Selenium Webdriver 和类型构造函数 - 如何操作

java扫描仪的相同精确输入不相等(对我来说?)

java - 无需高级扫描仪即可获取 Java 扫描仪输入

java - Java 中的扫描仪问题

java - Java中Int后无法输入String

Java POI 未设置上一个单元格超链接

java - 为什么子类中不可能有与父类具有相同签名的静态方法?

java - toString 方法中应该包含什么,不应该包含什么?

java - 在 JTabbedPane 上调整 JScrollPane 的大小