首頁 >Java >java教程 >如何在 Java 中將數字轉換為單字?

如何在 Java 中將數字轉換為單字?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-19 15:13:09530瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn