Я создаю программу отображения шрифтов, где я хочу отобразить 2 шрифта разных языков.String/Character Font Mapping using recursion in C#
Для примера A
в Arial Font (Английский) будет отображаться с अ
в Kruti Dev Font (Hindi).
У меня создается такое преобразование в базу данных таким образом:
Native_Font | Foreign_Language_Font
-------------------------------------------
A | अ
B | बी
Если преобразование было ограничено только для символов, это было в порядке. Прочтите каждый символ родного шрифта и найдите его соответствующий символ в шрифте иностранного языка. (Я это сделал)
Но теперь я должен сделать это и для строк, и вот где начинается настоящая проблема.
Если строка предоставлена в базе данных, а затем полностью преобразуйте ее. Но если его преобразование не существует, нахождение преобразования для одного символа меньше.
Примером может быть
В базе данных
Native_Font | Foreign_Language_Font
-------------------------------------------
Cha | चा
r | र
t | ट
и слово Chart
дается для перевода.
- Сначала попытаться преобразовать полное слово
Chart
. Если его отображение найдено, дайте сразу. - Но если он не находит прямого преобразования для
Chart
, тогда перейдите наChar
. Если его отображение обнаруживается податливость сразу, а затем найти соответствующий характерt
и так далее
Chart
Char t
Cha rt
Cha r t
Ch art
Ch ar t
Ch a r t
C hart
C har t
C ha r t
C h a r t
Кроме того, если отображение не найден, он должен быть заменен на родной характер шрифта. Как это сделать? Я уверен, что рекурсия должна использоваться. Но как?
Я немного обеспокоен этим вашим подходом, предположим, что есть слово «смотрел», теперь ваша логика найдет наблюдаемую в базе данных, ее не обнаружено, чем watche, которая не найдена, теперь она будет смотреть на часы , который найден, но эти часы не такие же, как и наблюдаемые, я надеюсь, что я выразил свою озабоченность. –
Надеюсь, вы уверены, что не столкнетесь с конфликтами с этим материалом. Напр. предположим, что у вас есть следующие пункты в вашем сопоставлении: CHA, CH, AR, T. Кажется, этого достаточно, чтобы перевести слово Chart. Теперь применив вашу логику, мы могли бы сначала собрать CHA, тогда у нас не было бы выбора для R. Вместо этого мы могли бы выбрать CH, AR & T. Я беспокоюсь, что если ваша база данных простирается, чтобы сказать сотни комбинаций из 26 букв вы можете столкнуться с этими конфликтами ... Я уверен, что вы должны позаботиться об этом .... –
@ImranBalouch Я думаю, что это не так, если он получает матч за «часы», он доволен. Затем он будет искать «ed», если не будет найден, тогда он пойдет искать «e» и «d» отдельно, которые обязательно будут иметь запись. Тогда он согласился бы на результат. @ Nikhil plz исправьте меня, если я ошибаюсь, если нет, то то, что я упомянул в моем предыдущем комментарии, является законной проблемой ... –