Как написать метод поиска, включающий «Мне нравится», такой как SQL, в J2ME - PullRequest
1 голос
/ 29 сентября 2011

Теперь я пытаюсь написать небольшой метод для поиска в j2me, он работает хорошо, но я не знаю, как написать метод, подобный SQL, использующий «Like» в j2me для поиска хранилища записей, который не требует совпадения на 100%.

Пример

В моем RecordStore есть 2 записи

London; Paris; Atlanta;

Paramount; NewYork; Bronx;
  • Когда я набираю на TextField букву "o", отображается только последняя запись

    Paramount; NewYork; Bronx хотя первая запись также имеет "Лондон"

Я научился писать метод поиска в Java2s dot com

http://www.java2s.com/Tutorial/Java/0430__J2ME/SearchrecordinRecordStore.htm

Как использовать «Мне нравится» в J2me? ​​

1 Ответ

1 голос
/ 10 октября 2011

(подробнее о том, что обсуждалось в комментариях к вопросу)

По поводу вашего общего вопроса - ответ - нет, MIDP 2 API не имеет ничего общего с SQL LIKE . Выражения / операторы SQL нельзя использовать согласно API RecordStore.

Способ поиска неточных совпадений в MIDP RecordStore (аналог SQL LIKE) заключается в обработке записей с использованием регулярных выражений. Обратите внимание, что регулярные выражения, в свою очередь, также недоступны в API MIDP 2.

Чтобы использовать регулярные выражения в MIDP, нужно написать собственный код для них, или, что еще лучше, получить некоторую библиотеку, которая делает это, например, пакет "regexp-me" с открытым исходным кодом :

«Пакет регулярных выражений Java Me (j2me), основанный на Jakarta Regexp. Regexp-me совместим с CLDC1.0 и имеет частичную поддержку Unicode».


Что касается примера SearchrecordinRecordStore.htm , о котором вы упоминаете, похоже, что если вы правильно его портировали, то вы должны получить "London".

  • Я имею в виду, если ваш RecordFilter проходит по строкам, содержащим "o" (без учета регистра), и если вы перечислили записи, используя этот фильтр, тогда в перечислении должен присутствовать "London".

    Проверьте, не пропустили ли вы «Лондон» при выводе (кстати, оригинальный пример, похоже, нацелен на отображение одного результата). Если вы используете эмулятор, рассмотрите возможность использования System.out.println - так вы можете перепроверить вывод не только с помощью интерфейса MIDlet, но и в консоли эмулятора.
...