0

我设计了搜索方法。根据我的要求,如果用户想要搜索客户的记录,他/她可以在姓名文本字段中输入客户的姓或名,然后单击搜索按钮。以下两个屏幕截图显示了按钮单击前后的事件示例(输入要搜索的名称为 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项目列表,你正在搜索所有项目的价值?

我的建议是为 DisplayArea 中的每一行创建对象,而不是Strings。例如,当您读取 DisplayArea 的输入文件时,split()为每一行执行并创建Customer具有名为IDnameroom等字段的类型对象。无论如何,这将是更好的 OO 编程 - Strings 没有任何意义,而 aCustomer有意义。

如果你这样做,在搜索中你可以简单地遍历Customer列表中的所有 s,询问name.equals(customer.getName());这是否会消除每次搜索时拆分行的需要。

于 2012-04-25T06:18:39.630 回答