Number input Exception thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0 -
in program you're supposed enter distance assigned variable. select number signifies type of conversion want make. example, if selected number 1 , pressed enter, convert meters kilometers.
i went test run, entered meters in , pressed enter. unable enter conversion wanted exception caused here:
please enter distance in meters: 500 please enter number of conversion want make: 1. convert kilometers 2. convert inches 3. convert feet 4. quit programexception in thread "main" java.lang.stringindexoutofboundsexception: string index out of range: 0 @ java.lang.string.charat(string.java:658) @ conversionwilson.main(conversionwilson.java:41)
not sure causing exception.
public static void main (string [] args) { // scanner object read input scanner keyboard = new scanner (system.in); // prompt user distance , conversion. system.out.println("welcome conversion program."); system.out.println("with program, can enter distance , convert form of measurement."); system.out.print("please enter distance in meters: "); if (meters >= 0) { meters = keyboard.nextdouble(); } else { system.out.println("meters cannot negative number. please choose positive number."); } system.out.print("please enter number of conversion want make: \n" + "1. convert kilometers \n" + "2. convert inches \n" + "3. convert feet \n" + "4. quit program"); input = keyboard.nextline(); conversion = input.charat(0); // deciding conversion method call. switch (conversion) { case '1': showkilometers(meters); break; case '2': showinches(meters); break; case '3': showfeet(meters); break; case '4': system.out.println("beep boop bop. quitting program now. later."); break; default: system.out.println("you did not select possible choice. please run program again , sure choose correct number."); }
i tried seeing if find resolve via search, of them seem have issue character @ index 0 being letter, input number.
meters = keyboard.nextdouble();
issue reads number , not entire line. need add keyboard.nextline() after it. nextline() call later consuming rest of line.
Comments
Post a Comment