>백엔드 개발 >PHP 튜토리얼 >PHP에서 단어를 숫자로 어떻게 변환합니까?

PHP에서 단어를 숫자로 어떻게 변환합니까?

DDD
DDD원래의
2024-11-07 12:53:021022검색

How do I convert words to numbers in PHP?

PHP에서 단어를 숫자로 변환: 종합 안내서

질문:

있습니까? PHP에서 단어로 표현된 숫자 값을 정수로 변환하는 간단한 방법은 무엇입니까?

답변:

숫자를 단어로 변환하는 방법은 많지만 역함수를 찾는 방법은 무엇입니까? 어려울 수 있습니다. 다음은 잘 정의된 알고리즘을 활용하는 포괄적인 접근 방식입니다.

단계:

  1. 토큰화:

    • 입력 문자열을 토큰이라는 개별 단어로 분할합니다.
    • 공통 토큰에는 다음이 포함됩니다.

      • POWER: 천, 백만, 십억
      • HUNDRED: 백
      • TEN: 스물, 서른... 구십
      • UNIT: 하나, 둘, 셋, ... 아홉
      • SPECIAL: 열, 열한, 열두, ... 19
  2. 오른쪽에서 왼쪽으로 구문 분석:

    • 다음부터 시작 가장 오른쪽 토큰.
    • UNIT, HUNDRED, TEN 및 SPECIAL 토큰의 조합을 나타내는 패턴과 일치하도록 연속된 토큰을 그룹화합니다. 예:

      • UNIT HUNDRED TEN UNIT
      • UNIT HUNDRED UNIT
      • SPECIAL
  3. 숫자로 변환:

    • 각 패턴을 해당 숫자 값(예: "21" -> 21)으로 변환합니다.
    • 이러한 값을 집계하여 최종 숫자를 얻습니다.
  4. 반복 처리:

    • 오른쪽에서 왼쪽으로 구문 분석하는 경우 POWER 토큰에 도달하면 다음으로 높은 POWER 또는 문자열 끝에서 프로세스를 다시 시작합니다.
    • 문자열의 시작 부분에 도달할 때까지 계속합니다.

예:

입력 문자열 "iPhone에는 23만783개의 앱이 있습니다."

  • 토큰화: ["iPhone", "가지고", "둘", "백", "그리고", "서른", "천", "일곱", "백", "그리고", "팔십", "셋" , "apps"]
  • 오른쪽에서 왼쪽으로 구문 분석:
  "three" -> 3
  "eighty" -> 80
  "and" -> (ignored)
  "seven" -> 7
  "hundred" -> 700
  "and" -> (ignored)
  "thirty" -> 30
  "thousand" -> 30000
  "two" -> 2
  "hundred" -> 200
  "and" -> (ignored)
  • 숫자로 변환:
  30000 + 200 + 30 + 700 + 80 + 3 = 230783

따라서 "iPhone에는 230,783개의 앱이 있습니다."는 "iPhone에는 230783개의 앱이 있습니다."가 됩니다.

위 내용은 PHP에서 단어를 숫자로 어떻게 변환합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.