Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

//need help with converting numbers from 0-2,147,483,647 to Text //here are some

ID: 3832856 • Letter: #

Question

//need help with converting numbers from 0-2,147,483,647 to Text

//here are some numbers to test 0,01 002, 3, 10, 011 ,13, 20, 27,100, 101,
// 0102, 111, 130 , 133, ... ,20000000019, 2147483647


package edu.mccc.cos210.words;


import java.until.Scanner;

public class NumberToWords {
   public static void main (String[] sa) {
       new NumberToWords().doIt();
   }
   private void doIt() {
       try(
           Scanner scanner = Scanner(System.in)
       )   {
           while (true ) {
               String s = Scanner.nextLine();
               if(s.matches("[0-9] +")) {
                   String words = convertToWords (s);
                   System.out.println(words);
               }
           }
       }
   }
   private String convertToWords(String number) {
       String words = "";
      
       // Code Goes HERE
      
      
      
       return words;
      
   }
}  

Explanation / Answer

package essaydemo;
import java.util.Scanner;

public class NumberToWords {
public static void main (String[] sa) {
new NumberToWords().doIt();
}
private void doIt() {
try(
Scanner scanner = new Scanner(System.in)
) {
while (true ) {
String s = scanner.nextLine();
if(s.matches("[0-9] +")) {
s = s.replaceAll("\s+", "");
  
String words = convertToWords (s);
System.out.println(words);
}
}
}
}
private String convertToWords(String numberStr) {
int number = Integer.parseInt(numberStr);
String wordNum = "";
//Outputs nothing if number is negative
if (number < 0)
return "";
  
//Outputs numbers 1 - 20 as words
else if (number == 1)
wordNum = "one";
else if (number == 2)
wordNum = "two";
else if (number == 3)
wordNum = "three";
else if (number == 4)
wordNum = "four";
else if (number == 5)
wordNum = "five";
else if (number == 6)
wordNum = "six";
else if (number == 7)
wordNum = "seven";
else if (number == 8)
wordNum = "eight";
else if (number == 9)
wordNum = "nine";
else if (number == 10)
wordNum = "ten";
else if (number == 11)
wordNum = "eleven";
else if (number == 12)
wordNum = "twelve";
else if (number == 13)
wordNum = "thirteen";
else if (number == 14)
wordNum = "fourteen";
else if (number == 15)
wordNum = "fifteen";
else if (number == 16)
wordNum = "sixteen";
else if (number == 17)
wordNum = "seventeen";
else if (number == 18)
wordNum = "eighteen";
else if (number == 19)
wordNum = "nineteen";
else if (number == 20)
wordNum = "twenty";
  
//Outputs numbers 21-100 as words
else if (number > 20 && number < 30)
wordNum = "twenty " + say(number%20);
else if (number == 30)
wordNum = "thirty";
else if (number > 30 && number < 40)
wordNum = "thirty " + say(number%30);
else if (number == 40)
wordNum = "forty";
else if (number > 40 && number < 50)
wordNum = "forty " + say(number%40);
else if (number == 50)
wordNum = "fifty";
else if (number > 50 && number < 60)
wordNum = "fifty " + say(number%50);
else if (number == 60)
wordNum = "sixty";
else if (number > 60 && number < 70)
wordNum = "sixty " + say(number%60);
else if (number == 70)
wordNum = "seventy";
else if (number > 70 && number < 80)
wordNum = "seventy " + say(number%70);
else if (number == 80)
wordNum = "eighty";
else if (number > 80 && number < 90)
wordNum = "eighty " + say(number%80);
else if (number == 90)
wordNum = "ninety";
else if (number > 90 && number < 100)
wordNum = "ninety " + say(number%90);
  
//Outputs numbers 101-999 as words
else if (number > 100 && number < 1000)
wordNum = say(number/100) + " hundred " + say(number%100);
  
//Outputs multiples of 100 as words
else if (number == 100 || number == 200 || number == 300
|| number == 400 || number == 500 || number == 600
|| number == 700 || number == 800 || number == 900)
wordNum = say(number/100) + " hundred";
  
//Outputs numbers 1001-999999 as words
else if (number > 1000 && number < 1000000)
wordNum = say(number/1000) + " thousand " + say(number%1000);
  
//Outputs multiples of 1000 as words
else if (number == 1000 || number == 2000 || number == 3000
|| number == 4000 || number == 5000 || number == 6000
|| number == 7000 || number == 8000 || number == 9000)
wordNum = say(number/1000) + " thousand";
  
//Outputs numbers 1000001-999999999 as words
else if (number > 1000000 && number < 1000000000)
wordNum = say(number/1000000) + " million " + say(number%1000000);
  
//Outputs multiples of 1000000 as words
else if (number == 1000000 || number == 2000000 || number == 3000000
|| number == 4000000 || number == 5000000 || number == 6000000
|| number == 7000000 || number == 8000000 || number == 9000000)
wordNum = say(number/1000000) + " million";
  
//Outputs numbers 1000000001-9999999999 as words
else if (number > 1000000000L && number < 1000000000000L)
wordNum = say(number/1000000000L) + " billion " + say(number%1000000000L);
  
//Outputs multiples of 1000000000 as words
else if (number == 1000000000L || number == 2000000000L || number == 3000000000L
|| number == 4000000000L || number == 5000000000L || number == 6000000000L
|| number == 7000000000L || number == 8000000000L || number == 9000000000L)
wordNum = say(number/1000000000L) + " billion";
  
//Outputs numbers 1000000000001-9999999999999 as words
else if (number > 1000000000000L && number < 1000000000000000L)
wordNum = say(number/1000000000000L) + " trillion " + say(number%1000000000000L);
  
//Outputs multiples of 1000000000000 as words
else if (number == 1000000000000L || number == 2000000000000L || number == 3000000000000L
|| number == 4000000000000L || number == 5000000000000L || number == 6000000000000L
|| number == 7000000000000L || number == 8000000000000L || number == 9000000000000L)
wordNum = say(number/1000000000000L) + " trillion";
  
//Outputs numbers 1000000000000001-9999999999999999 as words
else if (number > 1000000000000000L && number < 1000000000000000000L)
wordNum = say(number/1000000000000000L) + " quadrillion " + say(number%1000000000000000L);
  
//Outputs multiples of 1000000000000000 as words
else if (number == 1000000000000000L || number == 2000000000000000L || number == 3000000000000000L
|| number == 4000000000000000L || number == 5000000000000000L || number == 6000000000000000L
|| number == 7000000000000000L || number == 8000000000000000L || number == 9000000000000000L)
wordNum = say(number/1000000000000000L) + " quadrillion";
  
//Outputs numbers 1000000000000000001-9200000000000000000 as words
else if (number > 1000000000000000000L && number <= 9200000000000000000L)
wordNum = say(number/1000000000000000000L) + " quintillion " + say(number%1000000000000000000L);
  
//Outputs multiples of 1000000000000000000 as words
else if (number == 1000000000000000000L || number == 2000000000000000000L || number == 3000000000000000000L
|| number == 4000000000000000000L || number == 5000000000000000000L || number == 6000000000000000000L
|| number == 7000000000000000000L || number == 8000000000000000000L || number == 9000000000000000000L)
wordNum = say(number/1000000000000000000L) + " quintillion";
  
return wordNum;
  
}
}