Issue with Integer.parseInt



当我运行这个程序时,当字符串"你今天好吗?"输入到控制台中时,而不是能够在此之后在控制台中输入键矩阵,代码似乎直接跳到 test.process(); 这给了我这些错误:

Exception in thread "main" java.lang.NumberFormatException: For input string: " are you today?"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:569)
at java.lang.Integer.parseInt(Integer.java:615)
at EncoderAdd.stringtoKey(EncoderAdd.java:24)
at EncoderAdd.process(EncoderAdd.java:93)
at Runner.main(Runner.java:19)

错误指向的方法如下:

System.out.println("Type message to be encoded here:");
            String encode = in.next();
            if (encode.length() > 0){
                System.out.println("Type key matrix here (Like: k1, k2, k3,  k4):");
                String kmatrix = in.nextLine();
                System.out.println("");
                EncoderAdd test = new EncoderAdd(encode, kmatrix);
                test.process();
            }
public void stringtoKey(){
    String[] temp = mat.split(",");
    for (int i = 0; i < temp.length; i++){
        keyMat[i] = Integer.parseInt(temp[i]);
    }
}
public void process(){
    stringtoKey();
    stringtoInt();
    addkeytoInt();
    intArrtoFinal();
}

如何修复发生的错误?谢谢!

不要混合next()(最多占用空间)和nextLine()。我认为最简单的解决方法是这样的

String encode = in.nextLine();

在您发布的代码中,next()得到"如何",这将"你今天吗?"留给下一次调用nextLine()

相关内容

  • 没有找到相关文章

最新更新