当我运行这个程序时,字符串"你今天好吗?"输入到控制台,而不是之后能够键入键入控制台,代码似乎直接跳到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();
}
如何修复正在发生的错误? 谢谢!
答案 0 :(得分:3)
请勿混用next()
(最多消耗空间)和nextLine()
。我认为最简单的解决方法就像
String encode = in.nextLine();
在您发布的代码next()
中获取“如何”,并留下“今天你好吗?”下次拨打nextLine()
。