如何在J2me中搜索和排序(升序或降序)

时间:2011-11-17 05:23:02

标签: java-me midp rms

我想知道如何在J2ME中搜索。我一直在互联网上搜索,这么多结果显示给我,我在 Java2s.com 中看到我得到了一个结果使用RecordFilter并匹配记录存储中的搜索方法。

但我的问题是,当我需要传递2个或更多参数时。结果如何与这些参数匹配?

如何按冒号排序降序或升序排序?

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;
        }
    }
}

这样我可以过滤任何参数。希望有帮助! :)