# String in Array suchen



## Guest (12. Dez 2008)

Ich möchte herausfinden, ob in einem String-Array ein bestimmter String enthalten ist. Bei der API zu den Arrays habe ich nichts Passendes gefunden.


----------



## Ebenius (12. Dez 2008)

```
java.util.Arrays.asList( array ).contains( string_to_find )
```


----------



## Guest (12. Dez 2008)

Danke!


----------



## Landei (12. Dez 2008)

Selbst ist der Mensch:

```
public static boolean contains(String[] array, String string) {
  for(String s : array)
    if (s.equals(string)) return true;
  return false;
}
```


----------



## Ebenius (12. Dez 2008)

Hallo Landei,

Hmm. Erstens ist mein Ansatz ein Einzeiler, zweitens braucht er kaum mehr Resourcen, und drittens -- das ist der entscheidende Punkt -- ist er getestet und enthält keine Fehler. Dein Beispiel müsste ich auf jeden Fall noch ändern, zum Beispiel:
	
	
	
	





```
public static boolean contains(String[] array, String string) {
  for(String s : array)
    if (s == null && string == null || s != null && s.equals(string))
      return true;
  return false;
}
```

Warum also selber Code schreiben der vielleicht nicht funktioniert, wenn man Code nutzen kann, der funktioniert und gut getestet ist?

Auszug aus java.util.Arrays.ArrayList:
	
	
	
	





```
public int indexOf(Object o) {
    if (o==null) {
        for (int i=0; i<a.length; i++)
            if (a[i]==null)
                return i;
    } else {
        for (int i=0; i<a.length; i++)
            if (o.equals(a[i]))
                return i;
    }
    return -1;
}

public boolean contains(Object o) {
    return indexOf(o) != -1;
}
```

EDIT: 





> Selbst ist der Mensch:


... In puncto programmieren ist das einer der ungünstigsten Aussprüche die es gibt. Nachnutzen, wo es Sinn macht!

Grüße, Ebenius


----------



## Landei (12. Dez 2008)

Wir sind hier unter "Anfängerfragen". Bevor der Anfänger lernt, "nachzunutzen", sollte er es selber können. Denn schon bei der kleinsten Änderung der Aufgabenstellung ("Ist im Array ein String, der mit diesem String *anfängt*?") funktioniert deine Lösung nicht mehr.
Prinzipiell hast du natürlich recht.


----------



## Ebenius (12. Dez 2008)

Na gut. Bin ja wieder lieb.


----------

