Java - textField中的字符串输入 - 搜索arrayList - 包括部分匹配

时间:2014-02-10 09:26:58

标签: java regex arraylist jtextfield

已经有一段时间了,所以我觉得是时候需要一些急需的帮助了。我在动作监听器中有以下if语句('但是' - 被点击以查找以下内容的搜索按钮)。我在我的类中有一个arrayList(用于保存数据库中的数据),调用特定的记录工作完美。我正在尝试创建一个搜索textField(在下面命名为'tf')。我只能通过输入与搜索到的内容完全匹配来搜索,但我希望能够在tf中的任何字符串上使用部分匹配。所有被注释掉的东西都是我一直在测试的不同东西,因此可以忽略。

声明: if(srch.getText()。equals(“你选择按电影搜索:”) ...这用于确保此人仅在面板包含此标题时进行搜索,因为在同一面板上也有类型搜索。只有标题更改。

        if(source.equals(but)){
         //String b = a.get(0).get(1);
         String result = tf.getText();
         Pattern pat = Pattern.compile("[a-z]+");
         Matcher m = pat.matcher(result);
         //boolean bool = m.matches();
         int i = 0;
         //al.contains(result) && pat.matcher(a.get(i).get()).matches())
         // && z.contains(result)
       if( srch.getText().equals("You have chosen to search by movie: " )){ 
           for (ArrayList<String> al : a){  
                if (pat.m(a.get(i).get(0)).matches()){  
                  System.out.println(a.get(i).get(0)); //movie name
                  System.out.println(a.get(i).get(1)); //movie desc
         }
          i++;
          }
          //ta.setText(b);
        }
        else{
            ta.setText("Please try searching by movie");
        }
      }

总之,一切正常。我只需要一个正则表达式代码来查找部分匹配以及将其添加到我的循环中的方法。我添加了尽可能少的代码,以免浪费任何人的时间,所以如果需要任何其他的话请告诉我。非常感谢提前。最终,任何完整或部分匹配都将显示电影名称和描述。

1 个答案:

答案 0 :(得分:1)

我认为不需要正则表达式。

如果源字符串出现任何参数字符串,则

String.contains(String chars)返回true。

例如:

String str = "ABCDEFG";

if(str.contains("CD")){
     System.out.println("Present");
}