Maison >développement back-end >tutoriel php >Comment convertir des mots en nombres en PHP ?

Comment convertir des mots en nombres en PHP ?

DDD
DDDoriginal
2024-11-07 12:53:021021parcourir

How do I convert words to numbers in PHP?

Conversion de mots en nombres en PHP : un guide complet

Question :

Y a-t-il un moyen simple de convertir des valeurs numériques exprimées sous forme de mots en entiers en PHP ?

Réponse :

Bien qu'il existe de nombreuses ressources pour convertir des nombres en mots, trouver la fonction inverse peut être un défi. Voici une approche complète qui exploite un algorithme bien défini :

Étapes :

  1. Tokénisation :

    • Divisez la chaîne d'entrée en mots individuels appelés jetons.
    • Les jetons courants incluent :

      • PUISSANCE : mille, millions, milliards
      • CENT : cent
      • DIX : vingt, trente... quatre-vingt-dix
      • UNITÉ : un, deux, trois, ... neuf
      • SPÉCIAL : dix, onze, douze, ... dix-neuf
  2. Analyse de droite à gauche :

    • Commencer à partir du jeton le plus à droite.
    • Regroupez les jetons consécutifs pour faire correspondre des modèles représentant des combinaisons de jetons UNIT, CENT, DIX et SPECIAL. Par exemple :

      • UNITÉ CENT DIX UNITÉ
      • UNITÉ CENT UNITÉ
      • SPÉCIAL
  3. Convertir en nombres :

    • Traduisez chaque motif en sa valeur numérique correspondante (par exemple, "vingt et un" -> 21).
    • Agrégez ces valeurs pour obtenir le nombre final.
  4. Traitement itératif :

    • Si l'analyse de droite à gauche atteint un jeton POWER, redémarrez le processus à la PUISSANCE la plus élevée suivante ou à la fin de la chaîne.
    • Continuez jusqu'à ce que vous atteigniez le début de la chaîne.

Exemple :

Considérez la chaîne d'entrée "L'iPhone a deux cent trente mille sept cent quatre-vingt-trois applications."

  • Tokénisation : ["iPhone", "a", "deux", "cent", "et", "trente", "mille", "sept", "cent", "et", "quatre-vingts", "trois" , "apps"]
  • Analyse de droite à gauche :
  "three" -> 3
  "eighty" -> 80
  "and" -> (ignored)
  "seven" -> 7
  "hundred" -> 700
  "and" -> (ignored)
  "thirty" -> 30
  "thousand" -> 30000
  "two" -> 2
  "hundred" -> 200
  "and" -> (ignored)
  • Convertir en nombres :
  30000 + 200 + 30 + 700 + 80 + 3 = 230783

Par conséquent, « L'iPhone a deux cent trente mille sept cent quatre-vingt-trois applications » devient « L'iPhone a 230 783 applications. »

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!

Déclaration:
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