Search code examples
javanullpointerexceptionjava.lang.class

java.lang.NullPointerException form user input


Hey guys I'm trying to create a loop until a correct character choice is entered by the user. When I enter a wrong choice I get the error java.lang.NullPointerException. It might be with the way I'm inputing but I don't want to change that if I don't have to. choice is a private member of the class.

char wf() { 
    Scanner input = new Scanner(System.in); 
    System.out.println("What is your choice? (x/o)"); 
    choice = input.findInLine(".").charAt(0);

    while (choice != 'x' && choice != 'o') { 
        System.out.println("You must enter x or o!");
        choice = input.findInLine(".").charAt(0);
    }

    return choice; 
}//end wf

Solution

  • Change the function as below (I have tested this code):

    char wf() { 
        Scanner input = new Scanner(System.in); 
        System.out.println("What is your choice? (x/o)"); 
        char choice = input.findInLine(".").charAt(0);
    
        while (choice != 'x' && choice != 'o') { 
            System.out.println("You must enter x or o!");
            choice = input.next().charAt(0);
        }
    
        return choice; 
    }//end wf