Interview Question
Country: Bangladesh
Interview Type: Written Test
this code may helps you
int n=1234;
int rev=0;int d;
while(n!=0){
d=n%10;
rev=rev*10+d;
n=n/10;
}
int num=rev;
while(num!=0){
d=num%10;
switch(d){
case 1:System.out.println("one");break;
case 2:System.out.println("two");break;
case 3:System.out.println("three");break;
case 4:System.out.println("four");break;
case 5:System.out.println("five");break;
case 6:System.out.println("six");break;
case 7:System.out.println("seven");break;
case 8:System.out.println("eight");break;
case 9:System.out.println("nine");break;
}
num=num/10;
}
}
Map <String, String> map = new HashMap<String, String>();
map.put("0", "Zero");
map.put("1", "One");
map.put("2", "Two");
map.put("3", "Three");
map.put("4", "Four");
map.put("5", "Five");
map.put("6", "Six");
map.put("7", "Seven");
map.put("8", "Eight");
map.put("9", "Nine");
char[] arr = input.toCharArray();
StringBuilder builder = new StringBuilder();
for(char a: arr){
builder.append(map.get(Character.valueOf(a).toString()));
builder.append(" ");
}
return builder.toString();
this code may helps to you
public class NumericToWords {
public static void main(String[] args) {
int n=1234;
int rev=0;int d;
while(n!=0){
d=n%10;
rev=rev*10+d;
n=n/10;
}
int num=rev;
while(num!=0){
d=num%10;
switch(d){
case 1:System.out.println("one");break;
case 2:System.out.println("two");break;
case 3:System.out.println("three");break;
case 4:System.out.println("four");break;
case 5:System.out.println("five");break;
case 6:System.out.println("six");break;
case 7:System.out.println("seven");break;
case 8:System.out.println("eight");break;
case 9:System.out.println("nine");break;
}
num=num/10;
}
}
}
public static void printNumber(String s){
for(int i = 0;i < s.length();i++){
System.out.print(map.get(s.substring(i, i +1)));
System.out.print(" ");
}
}
public static void fillMap(){
map = new HashMap<String, String>();
map.put("0","zero");
map.put("1","one");
map.put("2","two");
map.put("3","three");
map.put("4","four");
map.put("5","five");
map.put("6","six");
map.put("7","seven");
map.put("8","eight");
map.put("9","nine");
}
public static HashMap<String, String> map;
Use Enum instead, see the below code
package exam;
public enum word
{
ZERO(0,"ZERO"),
ONE(1,"ONE"),
TWO(2,"TWO"),
THREE(3,"THREE"),
FOUR(4,"FOUR"),
FIVE(5,"FIVE");
private int digit;
private String digitWord;
word(int digit, String digitWord)
{
this.digit = digit;
this.digitWord = digitWord;
}
public static String lookup(int digit)
{
for(word w : word.values())
{
if(w.getDigit() == digit)
{
return w.getDigitWord();
}
}
return null;
}
public int getDigit()
{
return digit;
}
public void setDigit(int digit)
{
this.digit = digit;
}
public String getDigitWord()
{
return digitWord;
}
public void setDigitWord(String digitWord)
{
this.digitWord = digitWord;
}
}
package exam;
public class exercise1
{
public static void main(String args[])
{
String convertDigitToWord = word.lookup(5);
System.out.println(convertDigitToWord);
}
}
You don't need a hashmap since you can use the array index to get the word.
Here's my code
public class Main {
public static void main(String[] args) {
printNumberAsWords("2490");
}
private static void printNumberAsWords(String inputString) {
List<String> numbersAsWords = Arrays.asList("zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine");
String result="";
for(Character c : inputString.toCharArray()){
int digit = Character.digit(c, 10);
result+=numbersAsWords.get(digit)+" ";
}
System.out.println(result);
}
}
package com.test.me;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
public class printNumbers {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//BufferedReader bufRead = new BufferedReader(new InputStreamReader(System.in));
int fnum= 6345;
//System.out.println(fnum);
int value = 1;
ArrayList<Integer> tmp = new ArrayList<>();
int length = String.valueOf(fnum).length();
//System.out.println(length);
tmp.add(1);
for(int i=0;i<length-1;i++){
value = value*10;
// System.out.println(value);
tmp.add(value);
}
Collections.reverse(tmp);
for(Integer i:tmp){
// System.out.println(tmp);
int num =fnum/i;
// System.out.println(num);
switch (num) {
case 1:
System.out.print("One");
break;
case 2:
System.out.print("Two");
break;
case 3:
System.out.print("Three");
break;
case 4:
System.out.print("Four");
break;
case 5:
System.out.print("Five");
break;
case 6:
System.out.print("Six");
break;
default:
break;
}
fnum = fnum-(i*num);
// System.out.println(num);
}
}
}
Create an array of strings 0 - 9. Pick out digits using %. Build an output string using these digits.
- Adrian November 21, 2012