簡體   English   中英

如何部分匹配字符串?

[英]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;
}

請注意,這只會返回列表中的第一個字符串,其中包含用戶給您的內容,因此這是不精確的。

嘗試使用String#startsWith

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM