如何编写包含“Like”的搜索方法比如J2ME中的SQL

发布于 2024-12-07 00:42:14 字数 600 浏览 0 评论 0 原文

现在我尝试编写一个在j2me中搜索的小方法,它运行良好,但我不知道如何编写像SQL使用“Like”在j2me中搜索记录存储的方法不需要100%匹配。

示例

在我的 RecordStore 中有 2 条记录

London; Paris; Atlanta;

Paramount; NewYork; Bronx;
  • 当我在 TextField 上输入字母“o”时,它只显示最后一条记录

    派拉蒙;纽约;布朗克斯 虽然第一条记录也有“London”

但我从 Java2s dot com 学会了如何编写搜索方法

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

如何在J2me中使用“喜欢”?

Now I try to write a small method to search in j2me, it works well but I don't know how to write a method like SQL use "Like" in j2me to search recordstore doesn't need match 100% percent.

Example

In my RecordStore there are 2 records

London; Paris; Atlanta;

Paramount; NewYork; Bronx;
  • When I type on TextField letter "o" it only shows last record

    Paramount; NewYork; Bronx
    although first record also has "London"

I learned how to write a search method from Java2s dot com

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

How to use "Like" in J2me?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧人九事 2024-12-14 00:42:14

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

关于您的一般问题 - 答案是否定的,MIDP 2 API 没有任何类似 SQL LIKE。根据 RecordStore API,不能使用 SQL 表达式/语句。

在 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 重新检查输出,还可以在模拟器控制台中重新检查输出。

(expanding on what was discussed in question comments)

Regarding your general question - the answer is no, MIDP 2 API has nothing like SQL LIKE. SQL expressions/statements cannot be used according to RecordStore API.

The way to to search MIDP RecordStore for inexact match (similar to SQL LIKE) is to process the records using regular expressions. Note that regular expressions, in turn, are also not available in MIDP 2 API.

To use regular expressions in MIDP, one would have to write own code for these, or better yet, get some library that does that, eg "regexp-me" open source package:

"Java Me (j2me) regular expression package based on Jakarta Regexp. Regexp-me is CLDC1.0 compatible and has partial Unicode support".


As for the example SearchrecordinRecordStore.htm you mention, it looks like if you correctly ported it then you should get "London".

  • I mean if your RecordFilter passes at strings containing "o" (case insensitive) and if you enumerated records using that filter then "London" should be there in the enumeration.
     
    Check if you somehow missed "London" when doing the output (btw original example seem to be targeted at displaying a single result). If you use emulator, consider using System.out.println - that way you could re-check the output not only with MIDlet UI but in emulator console.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文