2013-04-08 1 views
0

У меня все еще проблема с строкой String parts = 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

что вход объявлено как? –

+1

Какой тип имеет «вход»? – dontcare

+1

Просьба отправить трассировку стека, показывающую, какое исключение поднимается и где. Я также предлагаю вам прочитать [FAQ] (http://stackoverflow.com/faq) и эти [подсказки] (http://tinyurl.com/so-hints). –

ответ

0

Посмотрите на nextLine:

Броски:

NoSuchElementException - , если ни одна строка не была найдена

IllegalStateException - если этот сканер закрыт

Убедитесь s canner is не закрыт прежде чем вы достигнете линии, которая вызывает проблему .. также убедитесь, что .. есть линия.

Я не вижу никаких других проблем, которые могут привести к вашей программе «авария» (Вы поможете нам, чтобы помочь вам, если вы лучше определить, что «авария» есть)

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(); 

оба должны работать без каких-либо проблем.