Prüfen, ob ein String einen Substring in Java enthält

Mohammad Irfan 12 Oktober 2023
  1. Prüfen, ob eine Zeichenkette eine TeilZeichenkette in Java enthält
  2. Teilzeichenkette mit Hilfe der indexOf() Mehtod in Java finden
  3. Teilzeichenkette mit Regex in Java finden
  4. Unter-String mit Apache in Java finden
  5. Teilzeichenkette mit Java Regex finden
Prüfen, ob ein String einen Substring in Java enthält

Dieses Tutorial führt ein, wie man prüft, ob eine Zeichenkette eine TeilZeichenkette in Java enthält, und listet einige Beispielcodes zum Verständnis auf.

Prüfen, ob eine Zeichenkette eine TeilZeichenkette in Java enthält

Ein String, der Teil eines anderen Strings ist, wird als Teilstring für dieses String-Objekt bezeichnet. Eine Zeichenkette ist eine Folge von Zeichen und ein unveränderliches Objekt in Java. Lassen Sie uns überprüfen, ob eine Teilzeichenkette in der gegebenen Zeichenkette existiert.

In diesem Beispiel verwenden wir die Methode contains() der Klasse String, die true zurückgibt, wenn die Teilzeichenkette der Zeichenkette gefunden wird. Wir verwenden die Methode toLowerCase(), um auf Groß-/Kleinschreibung zu prüfen.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "abracadaabra";
    String subStr = "daa";
    boolean containsStr = str.contains(subStr);
    System.out.println(containsStr);

    // Check with string ignore case
    subStr = "Daa";
    containsStr = str.toLowerCase().contains(subStr.toLowerCase());
    System.out.println(containsStr);

    subStr = "baa";
    containsStr = str.toLowerCase().contains(subStr.toLowerCase());
    System.out.println(containsStr);
  }
}

Ausgabe:

true
true
false

Teilzeichenkette mit Hilfe der indexOf() Mehtod in Java finden

Die Methode indexOf() der Klasse String wird benutzt, um den Index der Teilzeichenkette in einer Zeichenkette zu erhalten, aber wir können sie benutzen, um die Teilzeichenkette zu finden.

Hier prüfen wir, ob der Index der Teilzeichenkette größer oder gleich null ist, als es bedeutet, dass die Teilzeichenkette gefunden wurde. Wenn die Teilzeichenkette in der Zeichenkette nicht existiert, gibt sie -1 zurück.

Siehe das Beispiel und die Ausgabe.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "abracadaabra";
    String subStr = "daa";
    boolean containsStr = str.indexOf(subStr) >= 0;
    System.out.println(containsStr);

    // check with string ignore case
    subStr = "DaA";
    containsStr = str.toLowerCase().indexOf(subStr.toLowerCase()) >= 0;
    System.out.println(containsStr);

    subStr = "aaa";
    containsStr = str.indexOf(subStr) >= 0;
    System.out.println(containsStr);
  }
}

Ausgabe:

true
true
false

Teilzeichenkette mit Regex in Java finden

Wir können auch die matches() Methode des String Objekts verwenden, die RegEx als Argument nimmt und entweder true oder false zurückgibt.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "abracadaabra";
    String subStr = "daa";
    boolean containsStr = str.matches("(?i).*" + subStr + ".*");
    System.out.println(containsStr);

    subStr = "daa";
    containsStr = str.matches("(?i).*" + subStr + ".*");
    System.out.println(containsStr);
  }
}

Ausgabe:

true
true

Unter-String mit Apache in Java finden

Wenn Sie die Apache Commons-Bibliothek verwenden, dann können Sie die containsIgnoreCase() Methode der StringUtils-Klasse verwenden, die true zurückgibt, wenn die Teilzeichenkette gefunden wird, andernfalls false. Siehe das Beispiel unten.

import org.apache.commons.lang3.StringUtils;

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "abracadaabra";
    String subStr = "daa";
    boolean containsStr = StringUtils.containsIgnoreCase(str, subStr);
    System.out.println(containsStr);

    subStr = "DAa";
    containsStr = StringUtils.containsIgnoreCase(str, subStr);
    System.out.println(containsStr);

    subStr = "AcWF";
    containsStr = StringUtils.containsIgnoreCase(str, subStr);
    System.out.println(containsStr);
  }
}

Ausgabe:

true
true
false

Teilzeichenkette mit Java Regex finden

Java stellt ein regex-Paket zur Verfügung, das mehrere Klassen und Methoden enthält. Eine dieser Klassen ist eine Pattern-Klasse, die einige Methoden wie compile(), quote(), matcher(), etc. zur Verfügung stellt. Hier werden wir diese Methoden verwenden, um Teilzeichenketten zu finden.

import java.util.regex.Pattern;

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "abracadaabra";
    String subStr = "daa";
    boolean containsStr =
        Pattern.compile(Pattern.quote(subStr), Pattern.CASE_INSENSITIVE).matcher(str).find();
    System.out.println(containsStr);

    subStr = "RaCA";
    containsStr =
        Pattern.compile(Pattern.quote(subStr), Pattern.CASE_INSENSITIVE).matcher(str).find();
    System.out.println(containsStr);
  }
}

Ausgabe:

true
true

Verwandter Artikel - Java String