首页 > Java > java教程 > 如何在 Java 中将数字转换为单词?

如何在 Java 中将数字转换为单词?

Mary-Kate Olsen
发布: 2024-12-19 15:13:09
原创
525 人浏览过

How to Convert Numbers to Words in Java?

如何在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板