Home >Java >javaTutorial >How to Convert Numbers to Words in Java?
How to convert number to words in Java
Converting numbers to words in Java can be a useful task for a variety of applications, such as generating invoices, writing checks, or narrating numerical data.
Built-in Java Libraries
Unfortunately, there is no built-in method in any of the standard Java libraries that specifically converts numbers to words. However, using some creative coding and the libraries that already exist, you can easily write your own method to accomplish this task.
Custom Number to Words Converter
Here is a sample Java method that you can use to convert numbers to words:
public class NumberToWords { private static String[] lessThan20 = {"", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"}; private static String[] tens = {"", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"}; private static String[] thousands = {"", "thousand", "million", "billion", "trillion"}; public static String convert(long number) { if (number == 0) { return "zero"; } if (number < 0) { return "minus " + convert(-number); } int index = 0; String words = ""; while (number > 0) { if (number % 1000 != 0) { words = convertLessThanOneThousand(number % 1000) + " " + thousands[index] + " " + words; } number /= 1000; index++; } return words.trim(); } private static String convertLessThanOneThousand(long number) { if (number == 0) { return ""; } if (number < 20) { return lessThan20[(int) number]; } if (number < 100) { return tens[(int) number / 10] + "-" + lessThan20[(int) number % 10]; } return lessThan20[(int) number / 100] + " hundred " + convertLessThanOneThousand(number % 100); } public static void main(String[] args) { System.out.println(convert(1000)); System.out.println(convert(123456789)); System.out.println(convert(987654321012L)); } }
Usage
To use this method, simply import the NumberToWords class and call the convert method, passing in the number you want to convert as an argument.
import static com.example.converter.NumberToWords.convert; long myNumber = 123456789; String words = convert(myNumber); System.out.println(words); // Output: one hundred twenty three million four hundred fifty six thousand seven hundred eighty nine
Other Approaches
There are also other approaches you can use to convert numbers to words in Java, including using regular expressions or leveraging third-party libraries. However, the custom method provided above is a simple and effective way to get the job done.
The above is the detailed content of How to Convert Numbers to Words in Java?. For more information, please follow other related articles on the PHP Chinese website!