Java program - convert words into numbers?

Java program - convert words into numbers?

convert words into numbers?

View Answers

November 26, 2010 at 1:18 PM

had no answer sir.


November 26, 2010 at 5:53 PM

Hi Friend,

Try the following code:

import java.util.*;
 class ConvertWordToNumber {
    public static String WithSeparator(long number) {
        if (number < 0) {
            return "-" + WithSeparator(-number);
        }
        if (number / 1000L > 0) {
            return WithSeparator(number / 1000L) + ","
                    + String.format("%1$03d", number % 1000L);
        } else {
            return String.format("%1$d", number);
        }
    }
    private static String[] numerals = { "zero", "one", "two",
            "three", "four", "five", "six", "seven", "eight", "nine", "ten",
            "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen",
            "seventeen", "eighteen", "ninteen", "twenty", "thirty", "forty",
            "fifty", "sixty", "seventy", "eighty", "ninety", "hundred" };

    private static long[] values = { 0, 1, 2, 3, 4, 5, 6, 7, 8,
            9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 30, 40, 50, 60, 70,
            80, 90, 100 };

    private static ArrayList<String> list = new ArrayList<String>(
            Arrays.asList(numerals));
    public static long parseNumerals(String text) throws Exception {
        long value = 0;
        String[] words = text.replaceAll(" and ", " ").split("\\s");
        for (String word : words) {
            if (!list.contains(word)) {
                throw new Exception("Unknown token : " + word);
            }

            long subval = getValueOf(word);
            if (subval == 100) {
                if (value == 0)
                    value = 100;
                else
                    value *= 100;
            } else
                value += subval;
        }

        return value;
    }

    private static long getValueOf(String word) {
        return values[list.indexOf(word)];
    }
    private static String[] words = { "trillion", "billion", "million", "thousand" };

    private static long[] digits = { 1000000000000L, 1000000000L,1000000L, 1000L };

    public static long parse(String text) throws Exception {
        text = text.toLowerCase().replaceAll("[\\-,]", " ").replaceAll(" and "," ");
        long totalValue = 0;
        boolean processed = false;
        for (int n = 0; n < words.length; n++) {
            int index = text.indexOf(words[n]);
            if (index >= 0) {
                String text1 = text.substring(0, index).trim();
                String text2 = text.substring(index + words[n].length()).trim();

                if (text1.equals(""))
                    text1 = "one";

                if (text2.equals(""))
                    text2 = "zero";

                totalValue = parseNumerals(text1) * digits[n]+ parse(text2);
                processed = true;
                break;
            }
        }

        if (processed)
            return totalValue;
        else
            return parseNumerals(text);
    }
    public static void main(String[] args) throws Exception {
        Scanner in = new Scanner(System.in);
            System.out.print("Number in words : ");
                String numberWordsText = in.nextLine();
                System.out.println("Value : "+ ConvertWordToNumber.WithSeparator(ConvertWordToNumber.parse(numberWordsText)));
            }
}

Thanks









Related Tutorials/Questions & Answers:
A Program To Reverse Words In String in Java .
A Program To Reverse Words In String in Java .
Advertisements
A Program To Reverse Words In String in Java .
A Program To Reverse Words In String in Java .
A Program To Reverse Words In String in Java .
A Program To Reverse Words In String in Java
java program to insert data into a file and count the number of words from the file???????
program to display all words in the file in the sorted order without duplicates
Program to check whether two given words pronouncing same or not?
ModuleNotFoundError: No module named 'Aspose-Words-java-for-jython-v1.0'
ModuleNotFoundError: No module named 'aspose_words_java_for_python'
Program to count the number of unique words in a file using HashMap
highlight words in an image using java
Java Reverse words of the String
how to count words in string using java
java program
display co-occurrence words in a file
display co-occurrence words in a file
Java Program
ModuleNotFoundError: No module named 'words'
java program for
java program - Java Beginners
Java count words from file
a Java program
Java Program
java program
java program
java program
java program
java program
java program
Java Program
java program
java program
java program
java program
java program
java program
java program
program in java
java program
java program
java program
Java program
java program
java program
java program
java program
java program
java program

Ads