2009-05-21 3 views
4

유니 코드 숫자를 ASCII 숫자로 변환하는 function을 쓰고 있습니다. 문자열에 UNICODE 숫자가 다른 숫자가 포함되어있을 경우 어떻게 처리해야하는지 잘 모르겠습니다. 예를 들어, "\ x {2463} \ x {24F6}"("④⓶") 문자열이있는 경우입니다. 내 기능해야합니까동일한 문자열에서 UNICODE 숫자의 다른 세트의 숫자를 어떻게 처리해야합니까?

  1. return 42?
  2. 문자열에 혼합 세트가 포함되어 있는지 확인하십시오.
  3. 잉어는 문자열에 혼합 세트가 포함되어 있고 42 문자를 반환합니까?
  4. 위의 세 가지 동작 중 하나를 지정하기 위해 사용자에게 추가 인수를 제공 하시겠습니까?
  5. 다른 작업을 수행 하시겠습니까?

답변

1

현재 기능이 # 1처럼 보입니다.

난 당신이 또한 # 4를 수행하는 다른 함수를 작성해야하는 것이 좋습니다,하지만 는 요구 사항은 하지 전에에만 나타납니다 때.

저는 조엘이 최근 언젠가 블로그 기사에서 "조숙 한 구현"에 대해 썼다고 확신하지만, 그것을 찾을 수 없습니다.

+0

글쎄, 이것은 CPAN에 올라갈 것이기 때문에 사람들이 어떻게 그것을 사용하기를 원할 것인지를 모른다. 현재 함수에 선택적 매개 변수를 추가하고 매개 변수가 전달되면 몇 가지 검사를 수행하거나 그렇지 않은 경우 지금하고있는 작업을 수행하기는 쉽습니다. 누군가가 그 기능을 원한다면 나는 모른다. –

+0

누군가가 묻는대로 나중에 추가하십시오 ;-) – Alnitak

0

잘 모르겠습니다.

다양한 스크립트에서 숫자 변환을 지원합니다. 즉, 숫자 문자에 대한 유니 코드 코드 포인트를 알고 있습니다.

입력 데이터에 알 수없는 코드 포인트가있는 경우 오류입니다.

오류가 발생하는 경우 수행 할 작업은 사용자에게 달려 있습니다. 공백이나 밑줄을 넣거나 변환을 중단 할 수 있습니다. 사용자가 수행 할 작업은 함수가 실행되는 환경에 따라 달라집니다. 그것은 우리가 당신에게 말할 수있는 것이 아닙니다.

+0

나는 틀렸다고 생각합니다. 코드 포인트는 특히 _do_는 숫자 0..9와 동일한 의미를 가지며, 일부 문화권에서는 완전히 다른 글리프를 사용합니다. – Alnitak

+0

@Alnitak : 당신이 맞습니다. 질문을 잘못 읽었습니다. –

+0

@Atlnitak : 대답 재 작성 –

0

내 초기 생각은 # 4; 엄격하게 내가 옵션을 좋아한다는 사실에 근거합니다. 그러나, 나는 당신의 기능을 볼 때 내 마음이 바뀌었다.

함수의 목적은 간단히 결과 숫자 0.90을 얻는 것 같습니다. 사용자는 혼합 세트 (기능 :)를 보내면 유용 할 수 있습니다. 나는 그것을 사용할 것이다.

0

10보다 큰 기준으로 입력을 처리해야하는 경우 라틴 알파벳 ('ABCDEF')의 처음 6 자의 여러 변형을 모든 형태의 숫자로 처리해야 할 수 있습니다.

+0

그런 유니 코드 숫자가 아닐까요? 이것은 Perl에서 일치하는 \ d (즉, 숫자 속성이있는 문자)을 수학으로 할 수있는 것으로 다시 바꿔주는 것과 관련이 있습니다. 일치하는 숫자는 제가 개인에게 맡기는 것과 다릅니다. 예를 들어 "IV"는 때로는 숫자 (4)로, 때로는 약어 (정맥 내)로 간주됩니다. "IV"의 의미를 결정하는 방법은 없습니다 (자연어 처리 금지). 그러나 "\ x {1814} \ x {1812}"는 몽골 숫자로 42 개입니다. –

관련 문제