Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah saya menukar perkataan kepada nombor dalam PHP?

Bagaimanakah saya menukar perkataan kepada nombor dalam PHP?

DDD
DDDasal
2024-11-07 12:53:021022semak imbas

How do I convert words to numbers in PHP?

Menukar Perkataan kepada Nombor dalam PHP: Panduan Komprehensif

Soalan:

Adakah cara mudah untuk menukar nilai berangka yang dinyatakan sebagai perkataan kepada integer dalam PHP?

Jawapan:

Walaupun terdapat banyak sumber untuk menukar nombor kepada perkataan, mencari fungsi terbalik boleh mencabar. Berikut ialah pendekatan komprehensif yang memanfaatkan algoritma yang jelas:

Langkah:

  1. Tokenisasi:

    • Pisah rentetan input kepada perkataan individu yang dipanggil token.
    • Token biasa termasuk:

      • KUASA: ribu, juta, bilion
      • RATUS: ratus
      • SEPULUH: dua puluh, tiga puluh... sembilan puluh
      • UNIT: satu, dua, tiga, ... sembilan
      • KHAS: sepuluh, sebelas, dua belas, ... sembilan belas
  2. Penghuraian Kanan ke Kiri:

    • Mulakan dari token paling kanan.
    • Kumpulkan token berturut-turut untuk memadankan corak yang mewakili gabungan token UNIT, HUNDRED, TEN dan SPECIAL. Contohnya:

      • UNIT RATUS SEPULUH UNIT
      • UNIT RATUS UNIT
      • KHAS
  3. Tukar kepada Nombor:

    • Terjemah setiap corak kepada nilai berangka yang sepadan (cth., "dua puluh satu" -> 21).
    • Agregat nilai ini untuk mendapatkan nombor akhir.
  4. Pemprosesan Berulang:

    • Jika penghuraian kanan-ke-kiri mencapai token POWER, mulakan semula proses pada POWER tertinggi seterusnya atau penghujung rentetan.
    • Teruskan sehingga anda mencapai permulaan rentetan.

Contoh:

Pertimbangkan rentetan input "iPhone mempunyai dua ratus tiga puluh ribu tujuh ratus lapan puluh tiga aplikasi."

  • Tokenisasi: ["iPhone", "mempunyai", "dua", "ratus", "dan", "tiga puluh", "ribu", "tujuh", "seratus", "dan", "lapan puluh", "tiga" , "apl"]
  • Penghuraian Kanan ke Kiri:
  "three" -> 3
  "eighty" -> 80
  "and" -> (ignored)
  "seven" -> 7
  "hundred" -> 700
  "and" -> (ignored)
  "thirty" -> 30
  "thousand" -> 30000
  "two" -> 2
  "hundred" -> 200
  "and" -> (ignored)
  • Tukar kepada Nombor:
  30000 + 200 + 30 + 700 + 80 + 3 = 230783

Oleh itu, "iPhone mempunyai dua ratus tiga puluh ribu tujuh ratus lapan puluh tiga aplikasi" menjadi "iPhone mempunyai 230783 aplikasi."

Atas ialah kandungan terperinci Bagaimanakah saya menukar perkataan kepada nombor dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn