String.contains în Java

Verifică dacă textul dat apare oriunde în șir; comparația ține cont de literele mari și mici.

Sintaxă
boolean contains(CharSequence s)

Ce face String.contains

s.contains(x) returnează true dacă x apare ca bucată continuă în s. Este echivalent cu s.indexOf(x) >= 0. Șirul gol este conținut în orice șir.

Comparația este exactă: "Iași".contains("iași") este false. Pentru o căutare fără litere mari/mici, transformă ambele texte cu toLowerCase() înainte. contains nu folosește expresii regulate: punctul sau steluța sunt căutate ca atare.

Parametri

Parametru Descriere
s Textul căutat (orice CharSequence). Nu poate fi null.

Ce returnează

true dacă textul apare în șir.

Exemple

Exemplul 1: Căutare simplă

public class Main {
    public static void main(String[] args) {
        String adresa = "Str. Unirii 10, Iași, România";
        System.out.println(adresa.contains("Iași"));
        System.out.println(adresa.contains("iași"));
        System.out.println(adresa.toLowerCase().contains("iași"));
        System.out.println(adresa.contains(""));
    }
}

Rezultat

true
false
true
true

Exemplul 2: Filtrarea unei liste de produse

import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> produse = List.of("Lapte 1L", "Pâine albă", "Lapte de capră", "Brânză");
        String cautare = "lapte";
        for (String p : produse) {
            if (p.toLowerCase().contains(cautare)) {
                System.out.println("găsit: " + p);
            }
        }
    }
}

Rezultat

găsit: Lapte 1L
găsit: Lapte de capră

Greșeli frecvente

  • Cauți fără să ții cont de majuscule și ratezi rezultate. Transformă ambele texte în litere mici.
  • Folosești contains cu o expresie regulată ("[0-9]"): caută literal textul [0-9]. Pentru expresii regulate folosește matches sau Pattern.

Comenzi înrudite

  • String.indexOf: Returnează poziția primei (indexOf) sau ultimei (lastIndexOf) apariții a unui text sau caracter, ori -1.
  • String.startsWith: Verifică dacă șirul începe (startsWith) sau se termină (endsWith) cu textul dat.
  • String.matches: Verifică dacă ÎNTREGUL șir se potrivește cu o expresie regulată (validare de formate).