我正在尝试显示与用户输入内容类似的单词列表。例如,如果我有一个单词列表,如[“Software Eng 1”,“Software Eng 2”,“Blah”]
用户键入S,它将过滤到Software Eng 1和Software Eng 2.同样,用户输入So并过滤到相同的两个单词。但如果用户键入Soc,它就什么都没有。做这个的最好方式是什么?我试过了
for (EmployeeName r : list)
{
if (textField.getText().matches(r.getName()))
{
System.out.println(r.getName() + " is similar");
}
else System.out.println("NOPE");
}
但是,当textField.getText()完全相同时,这似乎只是抓住了这个案例
答案 0 :(得分:2)
Employees
名称都以输入的文本开头。示例:
for (EmployeeName r : list)
{
if (r.getName().startsWith(textField.getText()))
{
System.out.println(r.getName() + " is similar");
}
}
Employees
名称中的任何位置
那么String#contains就可以胜任。示例:
Employees
答案 1 :(得分:0)
例如,您可以使用contains
;
textField.getText().toLowerCase().contains(r.getName().toLowerCase())