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