0

J2MEで検索する方法が気になります。私はインターネットで検索しているので、多くの結果が表示されます。Java2s.comで、レコードストアでの検索の結果の使用RecordFilterと一致の方法を取得しました。

しかし、私の問題は、2つ以上のパラメーターを渡す必要がある場合です。結果はこれらのパラメータとどのように一致しますか?

そして、バブルソートのように降順または昇順でソートする方法は?

4

2 に答える 2

2

検索を単一の文字列変数に連結します。;たとえば、それぞれを区切ります。matchesメソッドのコードでは、文字列を分解して各検索基準を取得します。フィルターを有効にするには、SearchFilter のインスタンスを作成matchesし、連結された String をパラメーターとしてメソッドを呼び出します。インターフェースをsort実装するにはRecordComparator; メソッドを実装しcompareてソート基準を構築します。j2me+recordcomparator について Google 検索を行い、並べ替えの方法の例を確認してください。


編集 :

メソッドのコードではmatches、byte[] パラメータから取得した String パラメータを展開します。分解された各文字列を処理して基準を作成します。私が理解しているように、あなたが書いたときに検索基準として2つの文字列を渡したいと思っています:

SearchFilter search = new SearchFilter(txtSearch.getString(), strType);

したがって、コンストラクターには2つのパラメーターが必要です!!!

マッチングを行いたい場合はお電話ください

if searchFilter.matches((search1+";"+sType).getBytes())

次に、メソッドcandidateをコーディングするときに、param を 2 つの String に分解しますmatches

于 2011-11-17T05:40:35.933 に答える
0

データを RMS に保存するときは、各従業員の名前、年齢、給与、EmpID を保存するように String[] として保存します。配列を作成してバイトに変換し、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;
        }
    }
}

このようにして、任意のパラメーターをフィルタリングできます。:)

于 2011-11-19T06:18:21.987 に答える