Question: Write a java program using switch/case, and if statements to convert an integer between 0 and 99999 ( 5-digit number range ) to words. Here
Write a java program using switch/case, and if statements to convert an integer between 0 and 99999 ( 5-digit number range ) to words.
Here is an example that only goes up to 99, this works fine, but I start getting errors once I start moving up to the thousands and tens of thousands.
import java.util.*;
public class digitToWord{
public static void main( String[] args ){
Scanner input = new Scanner( System.in );
final int MINIMUM_NUMBER = 0,
MAXIMUM_NUMBER = 99;
System.out.printf( "Enter a number between %d and %d: ",
MINIMUM_NUMBER,
MAXIMUM_NUMBER );
int number = input.nextInt();
boolean numberHasTeenValue = false;
if( number > MAXIMUM_NUMBER){
System.out.printf( "The number entered is too large! " );
System.exit( 1 );
}
if( number < MINIMUM_NUMBER ){
System.out.printf( "The number entered is too small! " );
System.exit( 1 );
}
if( number / 10 != 0 ){ // is tens digit non-zero?
switch( number / 10 ){ // compare tens digit number value
case 1: // tens digit is 1 so value is in teens
numberHasTeenValue = true;
switch( number % 10){
case 0: System.out.printf( "ten" );
break;
case 1: System.out.printf( "eleven" );
break;
case 2: System.out.printf( "twelve" );
break;
case 3: System.out.printf( "thirteen" );
break;
case 4: System.out.printf( "fourteen" );
break;
case 5: System.out.printf( "fifteen" );
break;
case 6: System.out.printf( "sixteen" );
break;
case 7: System.out.printf( "seventeen" );
break;
case 8: System.out.printf( "eighteen" );
break;
case 9: System.out.printf( "nineteen" );
break;
default: System.out.printf( "Something wrong!" );
System.exit( 1 ); // force program to exit, code 1 for error
}
System.exit( 0 ); // program exit, code 0
break;
case 2: System.out.printf( "twenty" );
break;
case 3: System.out.printf( "thirty" );
break;
case 4: System.out.printf( "forty" );
break;
case 5: System.out.printf( "fifty" );
break;
case 6: System.out.printf( "sixty" );
break;
case 7: System.out.printf( "seventy" );
break;
case 8: System.out.printf( "eighty" );
break;
case 9: System.out.printf( "ninety" );
break;
default: System.out.printf( "Something wrong!" );
System.exit( 1 );
} // end of switch( number / 10 )
if( number % 10 != 0 ) // does number have a non-zero ones value?
System.out.printf( "-" );
} // end of if( number / 10 != 0 )
if( number % 10 != 0 && numberHasTeenValue == false ){
// if number has a non-zero ones value and is not in the teen range
switch( number % 10 ){ // isolate ones-value and print the corresponding word
case 1: System.out.printf( "one" );
break;
case 2: System.out.printf( "two" );
break;
case 3: System.out.printf( "three" );
break;
case 4: System.out.printf( "four" );
break;
case 5: System.out.printf( "five" );
break;
case 6: System.out.printf( "six" );
break;
case 7: System.out.printf( "seven" );
break;
case 8: System.out.printf( "eight" );
break;
case 9: System.out.printf( "nine" );
break;
default: System.out.printf( "Something wrong!" );
System.exit( 1 );
}
}
System.out.printf( " " ); // output a newline
} // end of main function
} // end of class
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
