1

现在我尝试编写一个在 j2me 中搜索的小方法,它运行良好,但我不知道如何编写类似 SQL 的方法,在 j2me 中使用“Like”来搜索记录库不需要 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 中使用“赞”?

4

1 回答 1

1

(扩展问题评论中讨论的内容)

关于您的一般问题 - 答案是否定的,MIDP 2 API 与SQL LIKE完全不同。SQL 表达式/语句不能根据 RecordStore API 使用。

在 MIDP RecordStore 中搜索不精确匹配(类似于 SQL LIKE)的方法是使用正则表达式处理记录。请注意,反过来,正则表达式在 MIDP 2 API 中也不可用。

要在 MIDP 中使用正则表达式,必须为这些编写自己的代码,或者更好的是,获取一些执行此操作的库,例如“regexp-me”开源包

“基于 Jakarta Regexp 的 Java Me (j2me) 正则表达式包。Regexp-me 兼容 CLDC1.0 并具有部分 Unicode 支持”。


至于您提到的示例SearchrecordinRecordStore.htm,看起来如果您正确移植它,那么您应该得到“伦敦”。

  • 我的意思是,如果您RecordFilter在包含“o”(不区分大小写)的字符串中传递,并且如果您使用该过滤器枚举记录,那么枚举中应该存在“London”。
     
    检查您在输出时是否以某种方式错过了“伦敦”(顺便说一句,原始示例似乎旨在显示单个结果)。如果您使用模拟器,请考虑使用System.out.println- 这样您不仅可以使用 MIDlet UI 还可以在模拟器控制台中重新检查输出。
于 2011-10-10T14:30:08.083 回答