0

I want a user to type a word so I can assign it to String day. The output is

Exception in thread "main" java.lang.NullPointerException at DaysOfTheWeek.main(DaysOfTheWeek.java:15)

import java.util.*;"
public class DaysOfTheWeek {

    static Scanner scan;

    public static void main(String[] args) {

        System.out.println("What day is it today?");
        String day = scan.next();
        int dayNumber = 0;

        switch (day.toLowerCase()) {
            case "sunday":
                dayNumber = 0;
                break;
            case "monday":
                    dayNumber = 1;
                break;
            case "tuesday":
                    dayNumber = 2;
                break;
            case "wednesday":
                    dayNumber = 3;
                break;
            case "thursday":
                    dayNumber = 4;
                break;
            case "friday":
                    dayNumber = 5;
                break;
            case "saturday":
                    dayNumber = 6;
                break;

        }//switch

    }//main

}//end public class
VincenzoC
  • 24,850
  • 12
  • 71
  • 90

2 Answers2

1

You did not initialize the scan object, thus you get a null pointer exception. You should follow the instructions here on how to read in input from the console.

Derek Brown
  • 3,867
  • 4
  • 22
  • 40
0

You have not initialized the scanner.

Also, there is no need to use this scanner as static. It`s better to initialize your scanner in the main method like this.

import java.util.*;
public class DaysOfTheWeek {

public static void main(String[] args) {



    System.out.println("What day is it today?");
    Scanner scan = new Scanner(System.in);
    String day = scan.next();
    int dayNumber = 0;

    switch (day.toLowerCase()) {
        case "sunday":
            dayNumber = 0;
            break;
        case "monday":
                dayNumber = 1;
            break;
        case "tuesday":
                dayNumber = 2;
            break;
        case "wednesday":
                dayNumber = 3;
            break;
        case "thursday":
                dayNumber = 4;
            break;
        case "friday":
                dayNumber = 5;
            break;
        case "saturday":
                dayNumber = 6;
            break;

    }//switch

Remember that if you want to use any object like Scanner once, it`s better and easier to use it like this.

    import java.util.*;
public class DaysOfTheWeek {

public static void main(String[] args) {



    System.out.println("What day is it today?");
    String day = new Scanner(System.in).next();


    int dayNumber = 0;

    switch (day.toLowerCase()) {
        case "sunday":
            dayNumber = 0;
            break;
        case "monday":
                dayNumber = 1;
            break;
        case "tuesday":
                dayNumber = 2;
            break;
        case "wednesday":
                dayNumber = 3;
            break;
        case "thursday":
                dayNumber = 4;
            break;
        case "friday":
                dayNumber = 5;
            break;
        case "saturday":
                dayNumber = 6;
            break;

    }//switch

So this code in the main method also does the same.

String day = new Scanner(System.in).next();
Fred A
  • 46
  • 5