2014-10-07 3 views
-1

Вот мой кодЧтение из консоли в Java

import java.util.InputMismatchException; 
import java.util.NoSuchElementException; 
import java.util.Scanner; 

public class Person { 
    private static final String VALID_NAME = "Please enter a valid name!"; 
    private static final String VALID_ID = "ID must contain integers"; 
    private static final String VALID_ADDRESS = "Please enter a valid adress!"; 
    private static final String VALID_INPUT = "Bad input"; 

    public static Scanner input = new Scanner(System.in); 

    public static String inputAdress() { 
     String personAdress = null; 

     try { 
      if (input.hasNextLine()) { 
       personAdress = input.nextLine(); 
      } else { 
       System.err.println(VALID_ADDRESS); 
      } 
     } catch (InputMismatchException e) { 
      System.err.println(VALID_INPUT); 
     } catch (NoSuchElementException e) { 
      System.err.println(VALID_INPUT); 
     } catch (IllegalStateException e) { 
      System.err.println(VALID_INPUT); 
     } 

     return personAdress; 
    } 

    public static long inputID() { 

     long ID = 0; 
     try { 
      if (input.hasNextLong()) { 
       ID = input.nextLong(); 
      } else { 
       System.err.println(VALID_ID); 
      } 
     } catch (InputMismatchException e) { 
      System.err.println(VALID_INPUT); 
     } catch (NoSuchElementException e) { 
      System.err.println(VALID_INPUT); 
     } catch (IllegalStateException e) { 
      System.err.println(VALID_INPUT); 
     } 

     return ID; 
    } 

    public static String inputName() { 

     String personName = null; 
     try { 
      if (input.hasNextLine()) { 
       personName = input.nextLine(); 
      } else { 
       System.err.println(VALID_NAME); 
      } 
     } catch (InputMismatchException e) { 
      System.err.println(VALID_INPUT); 
     } catch (NoSuchElementException e) { 
      System.err.println(VALID_INPUT); 
     } catch (IllegalStateException e) { 
      System.err.println(VALID_INPUT); 
     } 

     return personName; 
    } 
} 

public static void main(String[] args) { 

     personName = Person.inputName(); 
     ID = Person.inputID(); 
     personAdress = Person.inputAdress(); 
     System.out.println(personName + " " + ID + " " + personAdress); 

    } 

Проблема заключается в том, что после того, как ID = Person.inputID(); программа завершает и печатает только имя и идентификатор. Если я вызываю inputID как последний, проблем нет. Я пытался отлаживать и personAdress получать пустую строку без ввода. Любые идеи почему?

ответ

0

Это полный код? Где объявления для переменных, содержащих адрес имени и идентификатор? Я вижу только их объявленные в методах Try System.out.println (person.getName() + person.getID() + person.getaddress());

Смежные вопросы