Integer.parseInt问题

时间:2015-01-25 10:54:06

标签: java

当我运行这个程序时,字符串"你今天好吗?"输入到控制台,而不是之后能够键入键入控制台,代码似乎直接跳到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();
}

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

1 个答案:

答案 0 :(得分:3)

请勿混用next()(最多消耗空间)和nextLine()。我认为最简单的解决方法就像

String encode = in.nextLine();

在您发布的代码next()中获取“如何”,并留下“今天你好吗?”下次拨打nextLine()