티스토리 뷰

JAVA

Check only integer input

seoca 2019. 7. 12. 05:18

 

 

hasNextInt()

 

Use hasNextInt() to check if it's integer or not

 

while (!keyboard.hasNextInt()) {
   MenuViewer.keyboard.next(); //discard
   System.out.println("You entered character. Please, Enter a number to choose");
}
 

 

 

 

Example Code

while (true) {
    //try catch 구문이 while안에 있어야 에러처리가 끝나도 다시 메뉴를 선택할 수 있어.
    try {
        MenuViewer.menuViewer(); //Static method 이기 때문에 class name으로 호출
        while (!MenuViewer.keyboard.hasNextInt()) {
            MenuViewer.keyboard.next(); //discard
            System.out.println("You entered character. Please, enter a number to choose \n");
            MenuViewer.menuViewer();
        }
        int select = MenuViewer.keyboard.nextInt();
        MenuViewer.keyboard.nextLine(); //nextInt 다음에 nextLine 으로 delimiter 지우기.
 
        if (select < INIT_MENU.INPUT || select > INIT_MENU.EXIT) {
            throw new MenuChoiceException(select);
        }
 
        switch (select) {
            case INIT_MENU.INPUT: 
                phoneManager.inputData();
                break;
            case INIT_MENU.SEARCH:
                phoneManager.searchData();
                break;
            case INIT_MENU.DELETE:
                phoneManager.deleteData();
                break;
            case INIT_MENU.EXIT:
                System.out.println("Exit the program");
                return;
        }
    } catch (MenuChoiceException e) {
        e.showError();
        System.out.println("You need to enter a number again.");
    }
 
}
 

'JAVA' 카테고리의 다른 글

Returning ArrayList from Method  (0) 2019.07.13
Iterator  (0) 2019.07.12
instanceof keyword  (0) 2019.07.11
Overriding hasCode() and equals() in Java  (0) 2019.07.11
Singleton pattern (Java design pattern)  (0) 2019.07.10