2013-04-08 108 views
0

我仍然有一个问题,行String部分= input.nextLine();.它不断崩溃,如果我删除“线”,它是好的,但我想读整个字符串包括空格和存储它。假设我已经声明了所有的变量和数组。String.nextLine()Java - 崩溃

System.out.print("Enter registration number of vehicle: "); 
String inputREGO = input.nextLine(); 
System.out.print(inputREGO); 
boolean flag = false; 
for(int i=0; i<6; i++){ 
    if(inputREGO.equalsIgnoreCase(services[i].getregoNUMBER())){ 
     System.out.print("Enter Part Description: "); 

     String parts = input.next(); 
     System.out.print("Enter Part Cost: "); 

     Double cost = input.nextDouble(); 
     services[i].addPARTDETAILS(parts, cost); 
     flag = true; 
    } 
} 

if(!flag) 
    System.out.println("No registration number were found in the system."); 

public boolean addPARTDETAILS(String partDESCRIPTION, double partCOST){ 
    if(partDESCRIPTION.isEmpty() || partCOST <= 0){ 
     System.out.println("Invalid input, please try again!"); 
     return false; 
    } 
    else{ 
     StringBuffer strBuf = new StringBuffer(); 
     strBuf.append(" ").append(partDESCRIPTION).append(" ($").append(partCOST).append(")"); 
     partLIST += strBuf; 
     System.out.printf("\n%10s", partLIST); 
     System.out.println("\n Parts recorded successfully for vehicle " + getregoNUMBER()); 
     totalPART+=partCOST; 
     return true; 
    } 
} 
+2

什么是输入宣布为? – 2013-04-08 12:55:42

+1

什么类型有“输入”? – dontcare 2013-04-08 12:56:23

+1

请发布堆栈跟踪,显示正在引发异常和在哪里。我也建议你阅读[FAQ](http://stackoverflow.com/faq)和这些[提示](http://tinyurl.com/so-hints)。 – 2013-04-08 12:56:25

回答

0

nextLine

抛出:

NoSuchElementException异常 - 如果没有行被发现

IllegalStateException异常 - 如果此扫描器已关闭

确保s canner是未关闭之前,你到达导致问题的线..也请确保.. 有一条线

我不认为这可能会导致程序任何其他问题“崩溃”(你会帮助我们来帮助你,如果你更好地定义“撞车”是什么)

0

可以使用BufferedReader

BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in)); 
String text = bufferRead.readLine(); 

scanner

Scanner scanIn = new Scanner(System.in); 
    String text = scanIn.nextLine(); 

都应该没有任何问题的工作。