2010-09-23 1 views
0

Я ищу способ найти обычное неправильное написание строк при вводе с клавиатуры. Например, я хотел бы, чтобы «дом» возвращал «hoise», «hpuse», «jouse» и т. Д., Потому что символы с ошибками близки к правильным на QWERTY-клавиатуре.Как найти общие опечатки строк в C# .net?

Если бы я мог заставить это работать с числами, это все равно будет большой помощью. Учитывая «101», верните «111», «11», «01», «10» и т. Д. Это не должно быть идеальным, просто верните некоторые распространенные опечатки.

Кто-нибудь знает о существующем методе для выполнения этого или, возможно, предложения о том, как я могу написать его сам?

+3

Не угадывайте, что * перекрестки * также часто заполняются. –

+0

Абсолютно верно. Ответ Одеда включает удаление, переадресацию, вставку и изменение. – MAW74656

ответ

2

Алгоритм iteself не так уж сложно - вам нужен хороший словарь для сравнения.

Прочитано this SO вопрос для получения более подробной информации.

Here - это алгоритм, который является 21 строкой python, и here реализация C#.

+0

Вау, я думаю, я пытаюсь вырваться из своего весового класса. Можете ли вы привести простой пример вызова? Кроме того, я не вижу «словарь», как вы упомянули. – MAW74656

+0

@Marc - посмотрите на исходный код: 'File.ReadAllText (" big.txt ")' где находится словарь ("big.txt"). Сама программа является приложением командной строки, поэтому вы можете просто запустить ее в командной строке. – Oded

+0

Хорошо, я вижу. Я надеялся интегрировать эту функцию в свое приложение, где пользователь может выбрать номер задания, и программа вернет возможные ошибки для этого числа (на самом деле это просто строка, состоящая в основном из чисел, но может содержать букву в конце). – MAW74656