Reputation: 3
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
Upvotes: 0
Views: 20
Reputation: 116
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();
Upvotes: 0
Reputation: 4419
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.
Upvotes: 1