0

検索方法を設計しました。私の要件によると、ユーザーが顧客のレコードを検索したい場合、ユーザーは顧客の姓または名を名前テキスト フィールドに入力してから検索ボタンをクリックできます。次の 2 つのスクリーン ショットは、ボタン クリック前後のイベントの例を示しています (検索する名前を入力して Lee を入力)。

ここに画像の説明を入力

ここに画像の説明を入力

以下は検索用のコードです。うまくいっていますが、もっと良くしたいですか?

 private void search()
        {
            String studentName=CNameTextField.getText();
            String record="";
            int count=0;

            for(int i=0; i<myList.size();i++)
              {
                String name=myList.get(i).getName();

                 String [] splitName= name.split(" ");

                 if(studentName.equals(splitName[0]) || studentName.equals(splitName[1]))
                    {
                        count++;
                        record=record+"\n"+myList.get(i).toString();

                    }
                display.setText("");
                display.append(count + " result(s) found for "+ studentName);
                display.append("\n "+ record);
              }


    }
4

1 に答える 1

0

つまり、基本的にStringアイテムのリストを取得し、それらすべてから値を検索していますか?

sではなく、DisplayArea の各行にオブジェクトを作成することをお勧めしますString。たとえば、DisplayArea の入力ファイルを読み込むときは、 for each 行を実行し、、、、などのフィールドを持つ型split()のオブジェクトを作成します。いずれにせよ、これはより良い OO プログラミングになります - s には実際には意味がありません。一方 aには意味があります。CustomerIDnameroomStringCustomer

これを行うと、検索でリスト内のすべての s を単純にループして、検索するたびに行を分割する必要がなくなるCustomerかどうかを確認できます。name.equals(customer.getName());

于 2012-04-25T06:18:39.630 に答える