如何在 Java 中将数字转换为单词
在 Java 中将数字转换为单词对于各种应用程序来说都是一项有用的任务,例如例如生成发票、写支票或叙述数字数据。
内置 Java库
不幸的是,任何标准 Java 库中都没有专门将数字转换为单词的内置方法。但是,使用一些创造性的编码和已经存在的库,您可以轻松编写自己的方法来完成此任务。
自定义数字到单词转换器
这里是可用于将数字转换为的示例 Java 方法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)); } }
用法
要使用此方法,只需导入 NumberToWords 类并调用 Convert 方法,传入要转换的数字作为争论。
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
其他方法
您还可以使用其他方法在 Java 中将数字转换为单词,包括使用正则表达式或利用第三方库。然而,上面提供的自定义方法是完成工作的简单而有效的方法。
以上是如何在 Java 中将数字转换为单词?的详细内容。更多信息请关注PHP中文网其他相关文章!