[英]How to partial match with a string?
如何輸入單詞的部分字母來查找該單詞?
例如:我有一個字符串數組
String[] s = {"Cartoon", "Cheese", "Truck", "Pizza"};
如果我輸入了部分字母,例如“ ca”,“ Che”或“ piz”
然后我可以找到列表的全部單詞。
謝謝
stringValue.contains("string that you wanna search");
.contains
將完成工作,循環遍歷,並繼續在ArrayList<String>
為匹配的單詞添加單詞。
這可能是對java中的字符串的很好閱讀 。
.contains
就像mysql中的'%word%'
。 還有其他函數,例如Java中的.startsWith
和.endsWith
。 您可以使用最合適的方法。
首先將所有字符串都轉換為大寫或小寫,然后使用startsWith()方法。
您可以使用類似
String userInput = (new Scanner(System.in)).next();
for (String string : s) {
if (string.toLowerCase().contains(userInput.toLowerCase()) return string;
}
請注意,這只會返回列表中的第一個字符串,其中包含用戶給您的內容,因此這是不精確的。
List<String> list = new ArrayList<>();
list.add("Apples");
list.add("Apples1214");
list.add("NotApples");
list.stream().map(String::toLowerCase)
.filter(x->x.startsWith("app"))
.forEach(System.out::println);
如果你只是想在String
被遏制,那么使用字符串包含#
假設你的意思
String[] s = {"Cartoon", "Cheese", "Truck", "Pizza"};
最簡單的選擇是遍歷您的字符串數組,並在每個單獨的String上包含一個.contains。
for(int i = 0; i < s.length; i++){
if(s[i].contains("car")){
//do something like add to another list.
}
}
當然,這並不限制。 但這很容易通過.toLowerCare或.toUpperCase來規避。
嘗試基本邏輯
Scanner sc=new Scanner(System.in);
String[] s = {"Cartoon", "Cheese", "Truck", "Pizza",""};
System.out.println("Enter Characters");
String matchCharStr = sc.next();
for (int i = 0; i < s.length; i++) {
if (s[i].toLowerCase().contains(matchCharStr.toLowerCase())) {
System.out.println(s[i]);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.