[英]Use string startsWith on phrase
我創建了一個自動完成功能,它應該在用戶被startsWith
過濾后向用戶顯示結果。
例如,如果用戶搜索“harry potter”,我希望它返回以“harry potter”開頭的結果,但我得到的所有結果都以“harry”開頭,就像單詞之間的空格打斷了短語一樣。
如何將startsWith
與 2 個單詞的字符串一起使用?
我用:
for (String item : autoBookNames) {
if (item.toLowerCase().startsWith( query.toLowerCase() )) {
filteredTitles.add( item );
}
}
我做了一個簡單的 Main java class 看起來你的代碼正在運行:
public static void main(String[] args){
String query = "Harry Potter";
List<String> filteredTitles = new ArrayList<>();
List<String> autoBookNames = new ArrayList<>();
autoBookNames.add("Harry potter: Adfg");
autoBookNames.add("Harry Potter: SDFSDF");
autoBookNames.add("Not harry potter title");
autoBookNames.add("Harry potter is awesome");
autoBookNames.add("Narnia is better than Harry Potter");
autoBookNames.add("Lord of Rings");
for (String item : autoBookNames) {
if (item.toLowerCase().startsWith( query.toLowerCase() )) {
filteredTitles.add( item );
}
}
filteredTitles.forEach(System.out::println);
}
Output:
也許主要問題在於您的項目和查詢中的 startWith 的比較。
import java.util.ArrayList;
public class JavaPractice {
public static void main(String[] argh){
String[] autoBookNames = {
"Harry potter is ossm",
"Harry potter is Great",
"Harry",
"Joe"
};
ArrayList<String> filteredTitles = new ArrayList<String>(5);
for (String item : autoBookNames) {
if (item.toLowerCase().startsWith( "harry potter" )) {
filteredTitles.add( item );
}
}
System.out.println(filteredTitles);
}
}
我運行了這段代碼。 它工作正常。 output是【Harry potter is ossm, Harry potter is Great】。 也許query.toLowerCase()
有一些問題。 看看它返回了什么。 你會發現問題所在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.