2010-02-22 13 views
5

I have a String2. Voglio verificare se String2 esiste in String1. La lunghezza di String1 può essere minore o maggiore o uguale a String2. Anche String2 può essere nullo o vuoto a volte. Come posso controllare questo nel mio codice Java?Controllo sottostringa Java

risposta

36

La risposta ovvia è String1.contains(String2);

Sarà gettare un NullPointerException se String1 è nullo. Vorrei verificare che String1 non sia nullo prima di provare il confronto; le altre situazioni dovrebbero comportarsi come ci si aspetterebbe.

+0

supponendo che stiano usando Java 5+ – newacct

+3

Effettivamente. Spero che, visti i quasi sei anni dall'uscita di Java 5, possiamo in generale fare quella premessa. – Brabster

+1

Um, ci sono molti negozi di informatica (inclusa la mia, purtroppo) che usano ancora Java 1.4. –

7

Si dovrebbe provare a utilizzare String#contains.

+2

+1, per indicare l'OP all'API piuttosto che alimentare il codice. In questo modo l'OP è costretto a leggere l'API per scoprire i parametri. Chissà che mentre lo fanno, potrebbero persino trovare altri metodi utili e salvarli dal pubblicare un'altra domanda nel forum. – camickr

+0

Grazie mille per le informazioni – Arav

3

Ecco una semplice classe di test:

public class Test002 { 

    public static void main(String[] args) { 

     String string1 = "Java is Great!"; 
     String string2 = "eat"; 

     if (string1 != null && string2 != null & string2.length() <= string1.length() & string1.contains(string2)) { 
      System.out.println("string1 contains string2"); 
     } 

    } 
} 
+0

Grazie mille per le informazioni – Arav

5

Per le versioni precedenti, è possibile utilizzare indexOf. Se stringa2 non è in stringa1, indexOf ti darà -1. È necessario assicurarsi in anticipo che entrambe le stringhe non siano nulle per evitare una NullPointerException.

+0

Grazie mille per le informazioni – Arav