Comment convertir rapidement des nombres en texte
Par exemple, 1 => un, 2=> deux, ..., 15=》quinze
Ce à quoi je pense actuellement, c'est d'enregistrer les caractères chinois dans un tableau
$arr = ['一','二','三','四','五','六','七','八','九','十'];
Mais c'est trop compliqué. Comment convertir les nombres saisis en chinois ?
Le résultat final est le suivant :
Entrée 12
Sortie
一二三四五六七八九十十一十二
Si vous pouvez décrire clairement le processus de conversion numérique avec des mots, alors l'écriture de code est un processus de traduction.
L'algorithme n'est en fait qu'une logique métier avec une logique métier très étrange. L'accent est mis sur l'analyse de cettelogique métier
.Vous pouvez convertir des chiffres arabes en chiffres chinois avant même d'avoir terminé vos études primaires. Vous devez avoir une méthode en tête pour terminer ce processus de conversion. L’objectif de l’enquête ici est donc le processus d’abstractiondu problème. Pour être abstrait et précis, vous devez d’abord avoir une analyse et une compréhension complètes du problème lui-même et découvrir les règles. Dans le processus de conversion numérique, quand 0 est-il appelé dix et quand est-il appelé zéro. Ce processus est si naturel dans l’esprit qu’il nécessite tout de même une certaine capacité à analyser sa situation et à en connaître les règles.
Je recommande cet article. L'analyse au début de l'article est le processus d'abstraction, qui est très important pour la programmation
Comment convertir rapidement des nombres en texte
Par exemple, 1 => un, 2=> deux, ..., 15=》quinze
Ce à quoi je pense actuellement, c'est d'enregistrer les caractères chinois dans un tableau
Mais c'est trop compliqué. Comment convertir les nombres saisis en chinois ?
Le résultat final est le suivant :
Entrée 12
Sortie
Ce qui suit est la mise en œuvre de
JavaScript
Observez la représentation numérique des caractères chinois
Les caractères chinois spécifient explicitement l'ordre des nombres. Par exemple,
.一百零一
a l'ordre des centaines (cent, cent, dix, millions)2
>>>>Deux
2
>>>>二个
10
>>>>一十
>>>>十
10
>>>> > code> >>>>十
16
>>>>一十
六个
>>>>十六
105
>>>>一百
零十
五个
>>>>一百零五
1024
>>>>一千
零百
二十
四个
>>>>一千零二十四
Vous pouvez voir que sa représentation peut être considérée comme la forme de
值 + 阶
.De plus, lorsque les conditions suivantes sont remplies
需要省略阶或者值
Sur la base de la réflexion ci-dessus, l'idée de programmation qui devrait être tirée est la suivante :
Entrez des chiffres
n
Map
n
映射到一个数组tokens
上。 比如8
变成["八"]
,101
变成["一", "零", "一"]
à un tableaujetons
. Par exemple,8
devient["八"]
,101
devient["一", "zero", "一"]
Ajouter un niveau
101
变成["一", "百", "十", "零", "一", "个"]
Filtre, tel que
Cent un
dans la forme la plus simple一百十零一个
变成最简形式一百零一
Fonction outil
Réalisé
Première mise en œuvre
大于 10
的数字映射到汉字的数制
surPar exemple, saisissez
101
pour renvoyer101
返回一百零一
Il sera plus rapide d'utiliser la fonction outil écrite ci-dessus
Test simple Test de conversion
2
4
6
8
16
32
... 成二
四
八
十六
三十二
...Parcourir les nombres
....du 1 au n
Tests
https://github.com/wilon/php-...
Les nombres PHP sont convertis en descriptions de caractères chinois et le RMB est en majuscule
Prend en charge des centaines de milliards de nombres. La modification du tableau ws peut être étendue à l'infini. La modification du tableau cns en chinois traditionnel peut être utilisée pour capitaliser le RMB
.Ci-joint l'idée
/a/11...