Controlla se una stringa contiene una sottostringa in Java
- Controlla se una stringa contiene una sottostringa in Java
-
Trova sottostringa usando il Mehtod
indexOf()
in Java - Trova sottostringa utilizzando Regex in Java
-
Trova sottostringa utilizzando
Apache
in Java - Trova sottostringa utilizzando Java Regex
Questo tutorial introduce come verificare se una stringa contiene una sottostringa in Java ed elenca alcuni codici di esempio per comprenderla.
Controlla se una stringa contiene una sottostringa in Java
Una stringa che fa parte di un’altra stringa è nota come sottostringa per quell’oggetto String
. Una stringa è una sequenza di caratteri e un oggetto immutabile in Java. Controlliamo se esiste una sottostringa nella stringa data.
In questo esempio, usiamo il metodo contains()
della classe String
che restituisce true
se viene trovata la sottostringa della stringa. Usiamo il metodo toLowerCase()
per verificare la presenza di maiuscole e minuscole.
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);
}
}
Produzione:
true
true
false
Trova sottostringa usando il Mehtod indexOf()
in Java
Il metodo indexOf()
della classe String
è usato per ottenere l’indice della sottostringa in una stringa ma possiamo usarlo per trovare la sottostringa.
Qui, controlliamo se l’indice della sottostringa è maggiore o uguale a zero di quanto significhi che la sottostringa è stata trovata. Se la sottostringa non esiste nella stringa, restituisce -1
.
Vedi l’esempio e l’output.
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);
}
}
Produzione:
true
true
false
Trova sottostringa utilizzando Regex in Java
Possiamo anche usare il metodo match()
dell’oggetto String
che accetta regex come argomento e restituisce true
o false
.
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);
}
}
Produzione:
true
true
Trova sottostringa utilizzando Apache
in Java
Se usi la libreria Apache
commons, puoi usare il metodo containsIgnoreCase()
della classe StringUtils
che restituisce true
se viene trovata la sottostringa, altrimenti false
. Vedi l’esempio sotto.
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);
}
}
Produzione:
true
true
false
Trova sottostringa utilizzando Java Regex
Java fornisce un pacchetto regex
che contiene diverse classi e metodi. Una di queste classi è una classe Pattern
che fornisce un paio di metodi come compile()
, quote()
, matcher()
, ecc. Qui useremo questi metodi per trovare la sottostringa.
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);
}
}
Produzione:
true
true