C # - Показать различия при сравнении строк - PullRequest
5 голосов
/ 16 июня 2009

В моем проекте asp.net у меня есть две строки (на самом деле, они хранятся в объекте Session, затем я делаю .ToString ())

Этот проект является частью моих бесплатных упражнений по японскому языку на моем веб-сайте (пока только на итальянском, поэтому я не буду ссылаться на спам)

Пока я делаю if (original == inputted.ToLower()), но я бы хотел сравнить строки и выделить различия на экране

как это:

оригинал: хирояши
написал пользователь: hiro yo shi

Я думал сравнить две строки и сохранить различия в другой переменной с тегами HTML, а затем показать их на элементе управления Literal ... но ... если различий много или ввод короче. .. как это сделать?

Похоже, что нужно огромное количество кода ... или нет?

Ответы [ 3 ]

3 голосов
/ 16 июня 2009

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

Быстрый поиск по codeplex вызывает: http://www.codeplex.com/site/search?projectSearchText=diff

Может быть, стоит поискать тех, кто придет - возможно, вы сможете подключить что-то к существующему коду?

Ура, Терри

2 голосов
/ 16 июня 2009

Джон Резиг написал javascript diff алгоритм , но он удалил страницу, объясняющую, что он делает со своего сайта. Это все еще доступно через кэш Google все же. Извиняюсь за плохую ссылку. Джон . Он должен делать то, что вы хотите, кто-то другой взял его, подправил и выложил статью об этом здесь - в комплекте с тестовой страницей

0 голосов
/ 16 июня 2009

Я не уверен, будет ли это полезным, но я бы так и поступил:

Я хотел бы использовать хэш-карту и хранить там все слова, разделенные пробелами. Затем, используя это, я сопоставил бы с оригиналом.

Вы можете добавить HTML-теги или что-то еще, если они отличаются.

В большом словаре слов обязательно возникнет проблема с производительностью Само кодирование не будет долгим, хотя.

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