Ce face String.regionMatches
regionMatches compară len caractere din șirul curent, începând de la toffset, cu len caractere din other, începând de la ooffset. Nu creează șiruri noi (spre deosebire de substring(...).equals(...)).
Cu primul argument true, comparația ignoră literele mari și mici. Dacă una dintre porțiuni iese din șir, rezultatul este false (nu se aruncă excepție).
Parametri
| Parametru | Descriere |
|---|---|
ignoreCase |
true pentru a ignora literele mari/mici. |
toffset |
Începutul porțiunii în șirul curent. |
other, ooffset |
Celălalt șir și începutul porțiunii din el. |
len |
Câte caractere se compară. |
Ce returnează
true dacă porțiunile sunt egale.
Exemple
Exemplul 1: Compararea unor porțiuni
public class Main {
public static void main(String[] args) {
String cod = "RO-IS-2024";
System.out.println(cod.regionMatches(3, "IS", 0, 2));
System.out.println(cod.regionMatches(3, "is", 0, 2));
System.out.println(cod.regionMatches(true, 3, "is", 0, 2));
System.out.println(cod.regionMatches(6, "anul 2024", 5, 4));
System.out.println(cod.regionMatches(8, "2024", 0, 4));
}
}
Rezultat
true
false
true
true
false
Exemplul 2: startsWith fără litere mari/mici
Un prefix verificat fără să ții cont de majuscule, fără a transforma tot șirul.
public class Main {
static boolean incepeCu(String text, String prefix) {
return text.regionMatches(true, 0, prefix, 0, prefix.length());
}
public static void main(String[] args) {
System.out.println(incepeCu("HTTPS://dexblog.ro", "https://"));
System.out.println(incepeCu("ftp://server", "https://"));
System.out.println(incepeCu("Iași", "IAȘ"));
}
}
Rezultat
true
false
true
Greșeli frecvente
- Încurci ordinea argumentelor: primul număr este poziția în șirul curent, al doilea în
other. - Te aștepți la excepție când porțiunea iese din șir. Metoda returnează simplu
false, ceea ce poate ascunde o greșeală de calcul.
Comenzi înrudite
String.startsWith: Verifică dacă șirul începe (startsWith) sau se termină (endsWith) cu textul dat.String.equals: Verifică dacă două șiruri au exact același text; equalsIgnoreCase și equalsFoldCase ignoră literele mari/mici.String.substring: Returnează o bucată din șir: de la beginIndex (inclusiv) până la endIndex (exclusiv) sau până la final.