• Skip to primary navigation
  • Skip to content
  • Skip to primary sidebar
  • Skip to secondary sidebar

GoHired

Interview Questions asked in Google, Microsoft, Amazon

Join WeekEnd Online Batch from 4-April-2020 on How to Crack Coding Interview in Just 10 Weeks : Fees just 20,000 INR

  • Home
  • Best Java Books
  • Algorithm
  • Internship
  • Certificates
  • About Us
  • Contact Us
  • Privacy Policy
  • Array
  • Stack
  • Queue
  • LinkedList
  • DP
  • Strings
  • Tree
  • Mathametical
  • Puzzles
  • Graph

Convert number to words java

May 19, 2015 by Dhaval Dave

Write a code to Convert number to words . example  ip 15  op : fifteen

ip : 1234  op : one thousand and thirty four

Algorithm : When we detect a number at any place how to convert to a word. Obviously we need to store it.
See usage of Data Structure in java and Data Structure in c++ .
See usage of static string in java.

Step 1 ) Create array of ones[20] = {“zero”, “one”, “two”, …, “nineteen”};
Step 2) Create array of tens[10] = {“”, “ten”, “twenty”, …, “ninety”};
Step 3) Divide number by 1000, 100, 20 and convert it.
Step 4) Print it.

Convert number to words C++ solution

#include<iostream>
#include<string>
using namespace std;

string units [20] = {"","One ","Two ","Three ","Four ", "Five ","Six ","SEven ","Eight ","Nine ","Ten ","Eleven ", "Twelve ","Thirteen ","Fourteen ","Fifteen ","Sixteen ","Seventeen ","Eighteen ","Nineteen "};
string tens[] = {"","","Twenty ","Thirty ","Fourty ","Fifty ","Sixty ","Seventy ","Eighty ","Ninty "};
string digits[] = {"","","","Hundred ","Thousand ","Thousand ","Lakh ","Lakh ","Crore "};

string getOneDigit(int val, int index) { 
 if(val < 10) {
  string res = units[val];
  if(val != 0) {
    res = res + digits[index];
  }
  return res;
  }
  return "";
}

string getTensDigit(int val, int index) {
 if(val < 10) {
 string res = tens[val] + digits[index];
 return res;
 } 
 return "";
}

string getTwoDigit(int val, int index) {
 string res = ""; int temp = val;
 if(val < 20) {
  res = units[val] + res;
 }
 else {
  res = getOneDigit(val%10,0) + res;
  val = val /10;
  res = getTensDigit(val %10, 1) + res;
 }
 if(temp != 0) 
  res = res + digits[index];
  return res;
}

string convertToString(int n) {
 string result = "";
 int i = 1, r;
 while(n) {
 if(i != 3) {
   r = n %100;
   result = getTwoDigit(r,i) + result;
   n = n / 100;
   i = i+2;
 }
 else if(i == 3) {
   r = n %10;
   result = getOneDigit(r, i) + result;
   n = n / 10;
   i++;
 }
 }

 return result;
}
int main() {
 int n, t;
 cin>>t;
 while(t--) {
 cout<<"Entet the number to be converted: ";
 cin>>n;
 cout<<"Result : "<<convertToString(n)<<endl;
 }
 return 0;
}

Optimised Solution by : Rahul Goyal (B.Tech in CSE, Amrita School of Engineering)
See OP : https://ideone.com/FT5Rxv

Convert number to words java solution

Java solution with Scanner to word utility ,  which helps user  to input number  in this program.
See why we have used static string to initialize specialNames, tenseNames.

Check out this Best Java Programming Books 

import java.util.Scanner;
class TestClass {
 private static final String[] specialNames = {
 ""," thousand"," million"," billion"," trillion"," quadrillion",
" quintillion"
 };
 
 private static final String[] tensNames = {
 ""," ten"," twenty"," thirty"," forty"," fifty"," sixty"," seventy",
" eighty"," ninety"
 };
 
 private static final String[] numNames = {
 ""," one"," two"," three"," four"," five"," six"," seven"," eight",
 " nine"," ten"," eleven"," twelve"," thirteen"," fourteen"," fifteen",
 " sixteen"," seventeen"," eighteen"," nineteen"
 };
 
 private String convertLessThanOneThousand(int number) {
 String current;
 if (number % 100 < 20){
 current = numNames[number % 100];
 number /= 100;
 }
 else {
  current = numNames[number % 10];
  number /= 10;
  current = tensNames[number % 10] + current;
  number /= 10;
 }
  if (number == 0) return current;
  return numNames[number] + " hundred and" + current;
 }
 
public String convert(int number) {
if (number == 0) { return "zero"; }
  String prefix = ""; 
  if (number < 0) {
  number = -number;
  prefix = "negative";
 }

 String current = "";
 int place = 0;
 
  do {
  int n = number % 1000;
  if (n != 0){
  String s = convertLessThanOneThousand(n);
  current = s + specialNames[place] + current;
  }
  place++;
  number /= 1000;
 }   while (number > 0);
 
 return (prefix + current).trim();
 }
 
public static void main(String[] args) throws Exception {
  TestClass obj = new TestClass();
  Scanner sc = new Scanner(System.in);
  int n = sc.nextInt();
  System.out.println(obj.convert(n));
 }
}

Similar Articles

Filed Under: Flipkart Interview Questions, Hacker Earth Questions, Interview Questions, problem Tagged With: Java, string

Reader Interactions

Comments

  1. Rahul says

    September 19, 2015 at 10:17 pm

    I have a solution which I hope you all will like :

    //Wordify.. convert the number to a string

    #include
    #include
    using namespace std;

    string units [20] = {“”,”One “,”Two “,”Three “,”Four “, “Five “,”Six “,”SEven “,”Eight “,”Nine “,”Ten “,”Eleven “, “Twelve “,”Thirteen “,”Fourteen “,”Fifteen “,”Sixteen “,”Seventeen “,”Eighteen “,”Nineteen “};

    string tens[] = {“”,””,”Twenty “,”Thirty “,”Fourty “,”Fifty “,”Sixty “,”Seventy “,”Eighty “,”Ninty “};

    string digits[] = {“”,””,””,”Hundred “,”Thousand “,”Thousand “,”Lakh “,”Lakh “,”Crore “};

    string getOneDigit(int val, int index) {
    if(val < 10) {
    string res = units[val];
    if(val != 0) {
    res = res + digits[index];
    }
    return res;
    }
    return "";
    }

    string getTensDigit(int val, int index) {
    if(val < 10) {
    string res = tens[val] + digits[index];
    return res;
    }
    return "";
    }

    string getTwoDigit(int val, int index) {
    string res = ""; int temp = val;
    if(val >t;
    while(t–) {
    cout<>n;
    cout<<"Result : "<<convertToString(n)<<endl;
    }
    return 0;
    }

  2. anil bhaskar says

    January 24, 2016 at 4:56 pm

    Very simple solution using recursion.
    Please check out here https://github.com/bhaskey/digitoword

Trackbacks

  1. Urban Ladder Written Test. - GoHired says:
    May 19, 2015 at 7:54 pm

    […] 2) Wordify […]

Primary Sidebar

Join WeekEnd Online/Offline Batch from 4-April-2020 on How to Crack Coding Interview in Just 10 Weeks : Fees just 20,000 INR

Join WeekEnd Online/Offline Batch from 4-April-2020

WhatsApp us

Secondary Sidebar

Custom Search

  • How I cracked AMAZON
  • LeetCode
  • Adobe
  • Amazon
  • Facebook
  • Microsoft
  • Hacker Earth
  • CSE Interview

Top Rated Questions

VMWare Openings

Walmart Labs Interview Experience

Singly linked list

Add Sub Multiply very large number stored as string

Possible sizes of bus to carry n groups of friends

Leetcode: Merge Intervals

Maximum of all subarrays of size k

Templates in C++

VMWare SDEII Interview

Find the kth number with prime factors 3, 5 and 7

Find two non repeating elements in an array of repeating elements

LeetCode: Container With Most Water

Find the element that appears once others appears thrice

BlueStone E-commerce Interview Experience

C++ OOPs Part1

Check if an array has duplicate numbers in O(n) time and O(1) space

Stickler thief

robot standing at first cell of an M*N matrix. It can move only in two directions, right and down. In how many ways, it can reach to the last cell i.e. (M, N) Code it

Maximum path sum between two leaves

Generic Object Oriented Stack with Template

Python Array String

K’th Largest Element in BST when modification to BST is not allowed

Count number of ways to reach a given score in a game

Given a float number convert it into the string WITHOUT using any inbuilt Function

SAP Off Campus Hiring_ March 2015 Verbal Skills

Number of Islands BFS/DFS

Sequence Finder Dynamic Programming

LeetCode: Binary Tree Maximum Path Sum

Printing each word reverse in string

Maximum occurred Smallest integer in n ranges

Copyright © 2026 · Genesis Framework · WordPress · Log in