Donnerstag, April 9, 2020

Wie teilweise übereinstimmung mit einem string?

Wie kann ich den Typ teilweise Buchstaben ein Wort zu finden das Wort?

Zum Beispiel:
Ich habe ein string-array

 String[] s = {"Cartoon", "Cheese", "Truck", "Pizza"};

wenn ich input teilweise Buchstaben, wie „ca“,“Che“ oder „piz“

dann finde ich die ganzen Wörter für die Liste.

Dank

  • Java ist String hat die contains Funktion. Haben Sie das internet durchsuchen, bevor Sie eine Frage stellen? Es ist ziemlich grundlegende Dinge. Edit: ach ja, barbakini sagte in seiner Antwort, wenn Sie möchten, dass die Suche case-insensitive machen Sie den Suchbegriff und die Worte alle groß-oder Kleinbuchstaben und verwenden Sie dann contains.
InformationsquelleAutor Crazymango | 2017-05-03

6 Kommentare

  1. 3
    stringValue.contains("string that you wanna search");

    .contains wird die Arbeit machen, Durchlaufen Sie die Schleife und halten Sie das hinzufügen der Wörter in ArrayList<String> für die übereinstimmenden Einsen.

    Könnte dies ein guter Lesen auf string in java.

    .contains ist wie '%word%' in mysql. Es gibt auch andere Funktionen, wie .startsWith und .endsWith in java. Sie können verwenden, was auch immer Ihnen die besten.

  2. 0

    Ersten Besetzung alle Ihre strings groß-und Kleinschreibung und verwenden Sie dann startsWith () – Methode.

    • Haben Sie ein Beispiel?
  3. 0

    Könnten Sie so etwas wie

    String userInput = (new Scanner(System.in)).next();
    for (String string : s) {
        if (string.toLowerCase().contains(userInput.toLowerCase()) return string;
    }

    Beachten Sie, dass dies nur wieder die erste Zeichenfolge in der Liste, die enthält, was der Benutzer gab Sie so, es ist ziemlich ungenau.

    • Sie tun müssen userInput.toLowerCase() auch für eine case-insensitive Suche.
    • Danke, enthalten, jetzt.
  4. 0

    Versuchen, Diese Logik Für Basic

        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]);
            }
        }
  5. 0

    Versuchen Sie es mit 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);

    Wenn Sie wollen einfach nur die String enthalten sein, dann verwenden Sie String#contains

  6. 0

    Vorausgesetzt, Sie meinte

    String[] s = {"Cartoon", "Cheese", "Truck", "Pizza"};

    Ist die einfachste Möglichkeit wäre, um zu Durchlaufen und Ihre string-array und eine .enthält auf jeder einzelnen Saite.

    for(int i = 0; i < s.length; i++){
       if(s[i].contains("car")){
          //do something like add to another list.
       }
     }

    Diese natürlich nicht nehmen caps in concideration. Dies kann aber leicht umgangen werden, mit .toLowerCare oder .toUpperCase.

Kostenlose Online-Tests