我的應用程序在main
中遇到scan.getLine()
時總是崩潰。 我得到的錯誤是「java.util.NoSuchElementException:No line found」。Java應用程序在nextLine上崩潰()
下面是代碼:
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String s = new String();
int operation=0;
operation = getOperation();
System.out.print("Enter string:");
s = scan.nextLine(); // program crashes before I have the chance to input anything
System.out.println(s);
scan.close();
}
public static int getOperation(){ //get operation between 1-10
Scanner scan= new Scanner(System.in);
boolean input=true;
int op=0;
while (input){ // get correct input from the user
if (scan.hasNextInt())
{
op=scan.nextInt();
if (op < 1 || op > 10)
System.out.print("Please enter valid operation 1-10:");
else
input=false;
}
else
System.out.print("Please enter valid operation 1-10:");
scan.nextLine(); // to clear the buffer
}
scan.close();
return op;
}
奇怪的是,當我插入之前,我寫getOperation
功能,整個getOperation
在裏面main
,應用程序正常工作。只有當我將代碼移動到getOperation
方法後,然後scan.nextLine()
崩潰,甚至沒有改變以在控制檯中輸入任何東西。
嘗試宣告1'Scanner'對象(一個主用),並把它傳遞給'getOperation '方法。 – npinti