繁体   English   中英

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

[英]Java - String input in textField - search arrayList - include partial matches

已经有一段时间了,所以我认为是时候提供一些急需的帮助了。 我在动作侦听器中有以下if语句('but'-是被单击以执行以下操作的搜索按钮)。我在类中有一个arrayList(用于从数据库保存数据),调用特定的记录有效完美。 我正在尝试创建一个搜索textField(在下面命名为“ tf”)。 我只能通过键入与要搜索的内容完全匹配的方式进行搜索,但是我希望能够对tf中的任何String使用部分匹配。 被注释掉的所有内容都是我正在测试的不同内容,因此可以忽略。

语句: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");
        }
      }

总而言之,一切正常。 我只需要一个正则表达式代码来查找部分匹配项,并将其添加到循环中即可。 我添加了尽可能少的代码,以免浪费任何人的时间,所以请让我知道是否需要其他任何代码。在此先感谢。 最终,任何完全匹配或部分匹配的内容都会显示电影名称和说明。

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

如果源字符串中出现任何参数字符串,则String.contains(String chars)返回true。

例如:

String str = "ABCDEFG";

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM