Maison > Java > javaDidacticiel > Comment convertir des nombres en mots en Java ?

Comment convertir des nombres en mots en Java ?

Mary-Kate Olsen
Libérer: 2024-12-19 15:13:09
original
527 Les gens l'ont consulté

How to Convert Numbers to Words in Java?

Comment convertir des nombres en mots en Java

La conversion de nombres en mots en Java peut être une tâche utile pour une variété d'applications, telles que comme générer des factures, rédiger des chèques ou raconter des données numériques.

Java intégré Bibliothèques

Malheureusement, il n'existe aucune méthode intégrée dans aucune des bibliothèques Java standard qui convertit spécifiquement les nombres en mots. Cependant, en utilisant du codage créatif et les bibliothèques qui existent déjà, vous pouvez facilement écrire votre propre méthode pour accomplir cette tâche.

Convertisseur de nombres personnalisés en mots

Voici un exemple de méthode Java que vous pouvez utiliser pour convertir des nombres en mots :

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));
    }
}
Copier après la connexion

Utilisation

Pour utiliser cette méthode, importez simplement la classe NumberToWords et appelez la méthode convert, en passant le nombre que vous souhaitez convertir en tant que 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
Copier après la connexion

Autres approches

Il existe également d'autres approches vous pouvez utiliser pour convertir des nombres en mots en Java, notamment en utilisant des expressions régulières ou en tirant parti de bibliothèques tierces. Cependant, la méthode personnalisée fournie ci-dessus constitue un moyen simple et efficace de faire le travail.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal