我想知道如何在J2ME中搜索。我一直在互联网上搜索,这么多结果显示给我,我在 Java2s.com 中看到我得到了一个结果使用RecordFilter
并匹配记录存储中的搜索方法。
但我的问题是,当我需要传递2个或更多参数时。结果如何与这些参数匹配?
如何按冒号排序降序或升序排序?
答案 0 :(得分:2)
将搜索连接到单个String变量中。例如,用;
将它们分开。在matches
方法的代码中,使用String来获取每个搜索条件。
要使过滤器生效,请创建一个SearchFilter实例,并使用concantenated String作为其参数调用matches
方法。
对于sort
实现RecordComparator
接口;实施compare
方法来构建排序条件。对j2me + recordcomparator进行谷歌搜索,以查看有关如何进行排序的示例。
编辑:
在matches
方法的代码中,展开从byte []参数获取的String参数。处理每个String爆炸以制定标准。
据我所知,当你写下来时,你希望传递两个字符串作为搜索条件:
SearchFilter search = new SearchFilter(txtSearch.getString(), strType);
所以在构造函数中应该有两个参数!!!
如果要进行匹配,请调用
if searchFilter.matches((search1+";"+sType).getBytes())
然后在编码candidate
方法时将matches
param分解为两个字符串。
答案 1 :(得分:0)
当我在RMS中保存数据时,我将其保存为String [],就像我想为每个员工保存名称,年龄,薪水,EmpID一样,我保存它创建一个数组并将其转换为字节并将其保存在RMS中。当我检索它时,我做相反的过程。现在,如果我想让名字以A开头并且工资为10000的员工使用以下过滤器
class UtilFilter implements RecordFilter{
public UtilFilter(String str_searchText,String str_searchText1)
{
this.str_searchText = str_searchText.toLowerCase();
this.str_searchText1 = str_searchText1.toLowerCase();
}
public boolean matches(byte[] bt_byteData)
{
String str_str = "";
String str_str1 = "";
//here goes code how u get back ur String[] from RMS say u get it in Data
str_str = Data[0].trim();
str_str1 = gd_cd.Data[2].trim();
if(str_searchText != null && str_searchText1 != null && str_str.equals(str_searchText) && str_str1.equals(str_searchText1 ))
{
return true;
}
else
{
return false;
}
}
}
这样我可以过滤任何参数。希望有帮助! :)