[英]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.