Как мне обрабатывать цифры из разных наборов цифр UNICODE в одной строке? - PullRequest
4 голосов
/ 21 мая 2009

Я пишу функцию , которая транслитерирует цифры UNICODE в цифры ASCII, и я немного озадачен тем, что делать, если строка содержит цифры из разных наборов цифр UNICODE. Так, например, если у меня есть строка "\ x {2463} \ x {24F6}" ("④⓶"). Должна ли моя функция

  1. Возврат 42?
  2. хрен что строка содержит смешанные множества?
  3. Карп, что строка содержит смешанные множества и возвращает 42?
  4. дать пользователю дополнительный аргумент для указания одного из трех описанных выше поведений?
  5. делать что-то еще?

Ответы [ 4 ]

1 голос
/ 21 мая 2009

Ваша текущая функция, кажется, делает # 1.

Я предлагаю вам также написать другую функцию для выполнения # 4, но только при появлении требования и не раньше .

Я уверен, что недавно Джоэл писал о "преждевременной реализации" в статье в блоге, но я не могу ее найти.

0 голосов
/ 30 мая 2009

Если вам когда-либо придется обрабатывать ввод в базах больше 10, вам может потребоваться обработать множество вариантов первых 6 букв латинского алфавита ('ABCDEF') как цифры во всех их формах.

0 голосов
/ 21 мая 2009

Моя первоначальная мысль была # 4; строго исходя из того, что мне нравятся варианты. Однако я передумал, когда увидел твою функцию.

Назначение функции, по-видимому, просто получить результирующие цифры 0..9. Пользователи могут посчитать полезным отправку в смешанных наборах (функция :). Я буду использовать это.

0 голосов
/ 21 мая 2009

Я не уверен, что вижу проблему.

Вы поддерживаете преобразование чисел из ряда сценариев, то есть вам известны кодовые точки Unicode для их числовых символов.

Если вы обнаружили неизвестную кодовую точку в ваших входных данных, это ошибка.

Это зависит от вас, что вы делаете в случае ошибки; Вы можете вставить пробел или подчеркивание или прервать преобразование. Что вы будете делать, будет зависеть от среды, в которой выполняется ваша функция; это не то, что мы можем вам сказать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...