我已经从事此工作有一段时间了,所以我认为是时候寻求一些急需的帮助了。我在 Action 监听器中有以下 if 语句(“但是” - 是单击搜索按钮以发生以下情况)。我的类中有一个 arrayList(用于保存数据库中的数据),调用特定记录有效完美。我正在尝试创建一个搜索文本字段(下面名为“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");
}
}
总而言之,一切正常。我只需要一个正则表达式代码来查找部分匹配以及一种将其添加到我的循环中的方法。我添加了尽可能少的代码,以免浪费任何人的时间,因此如果需要任何其他代码,请告诉我。提前非常感谢。最终,任何完整或部分匹配都将显示电影名称和说明。
最佳答案
我认为不需要正则表达式。
String.contains(String chars)如果源字符串中出现任何参数字符串,则返回 true。
例如:
String str = "ABCDEFG";
if(str.contains("CD")){
System.out.println("Present");
}
关于Java - 文本字段中的字符串输入 - 搜索数组列表 - 包括部分匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21673270/