Java Language Trovare una stringa all'interno di un'altra stringa


Esempio

Per verificare se una particolare stringa a è contenuta in una stringa b oppure no, possiamo usare il metodo String.contains() con la seguente sintassi:

b.contains(a); // Return true if a is contained in b, false otherwise

Il metodo String.contains() può essere utilizzato per verificare se è possibile trovare un CharSequence nella stringa. Il metodo cerca la stringa a nella stringa b in modo maiuscole e minuscole.

String str1 = "Hello World";
String str2 = "Hello";
String str3 = "helLO";

System.out.println(str1.contains(str2)); //prints true
System.out.println(str1.contains(str3)); //prints false

Demo live su Ideone


Per trovare la posizione esatta in cui una stringa inizia all'interno di un'altra stringa, utilizzare String.indexOf() :

String s = "this is a long sentence";
int i = s.indexOf('i');    // the first 'i' in String is at index 2
int j = s.indexOf("long"); // the index of the first occurrence of "long" in s is 10
int k = s.indexOf('z');    // k is -1 because 'z' was not found in String s
int h = s.indexOf("LoNg"); // h is -1 because "LoNg" was not found in String s

Demo live su Ideone

Il metodo String.indexOf() restituisce il primo indice di un char o di una String in un'altra String . Il metodo restituisce -1 se non viene trovato.

Nota : il metodo String.indexOf() è sensibile al maiuscolo / minuscolo.

Esempio di ricerca che ignora il caso:

String str1 = "Hello World";
String str2 = "wOr";
str1.indexOf(str2);                               // -1
str1.toLowerCase().contains(str2.toLowerCase());  // true
str1.toLowerCase().indexOf(str2.toLowerCase());   // 6

Demo live su Ideone