# Überprüfung mit match ?



## Trash (2. November 2006)

moin,
ich möchte folgendes machen:


```
if (produktliste[position].match("Material")) {
```

jedoch bekomme ich immer die Meldung, dass match() nicht definiert ist...ich habe in der klasse auch keine methode match, aber wie bekomme ich die standardmethoden dort rein ?

danke


----------



## MeinerEiner_80 (2. November 2006)

Moin!
Geh ich recht in der Annahme, dass produktliste ein String Array ist, und du wissen möchtest, ob der String an der Stelle "position" gleich "Material" ist ?

Falls ja, nimmt man dazu nicht die Funktion "match(String t)", die richtigerweise matches(String regex) heißt.
Diese nimmt man zum überprüfen, ob ein String zu dem übergebenen regulären Ausruck passt.
Was du wahrscheinlich willst, ist

```
if(produktliste[position].equals("Material"))
```
Das hätte man aber auch alles wunderbar in der Java Doku nachlesen können.

Falls ich falsch liegen sollte, solltest du vielleicht mal genau definieren, was du eigentlich willst, und was produktliste genau ist (Array of ?)...

*grüssle*
MeinerEiner


----------



## Trash (2. November 2006)

moin,
also produktliste[position] ist ein Array mit den Objekten der Klasse Produkt  


```
private Produkt[] produktliste = new Produkt[2];
```

produktliste[position] liefert etwas nach "Material.&SHds6" oder so...ich möchte nun überprüfen, ob produktliste[position] "Material" oder etwas anderes beinhaltet. Dazu würde es auch schon reichen ob man an der char Position 1 ein "M" stehen hat.

Sorry, ich mach Java grad seit 1 Woche  Daher die Fragen.

Danke


----------



## zeja (3. November 2006)

Im javadoc zu String  findest du alle Methoden die du darauf aurufen kannst.

Für dich interessant sind dabei startsWith und indexOf.


----------



## MeinerEiner_80 (3. November 2006)

Trash hat gesagt.:


> moin,
> also produktliste[position] ist ein Array mit den Objekten der Klasse Produkt



Dann liefert dir 

```
produktliste[position]
```
auch eine Objekt vom Typ Produkt und keinen String.

"Material.&SHds6" hast du sicherlich in einer String Variable gespeichert, oder?

Das heißt, du erstellst nun eine Methode in der Produktklasse, nennen wir sie mal "getString()", welche diesen String zurückliefert.. du hast dann also dann etwas derart:

```
public class Produkt {
     private String str = "Material.&SHds6";
      
      public String getString(){
          return str;
      }
....
}
```

Wenn du nun wissen möchtest, ob dieser String das Wort Material beinhaltet, kannst du das so machen:

```
if(produktliste[position].getString().contains("Material"))
```

Wenn du nun kompliziertere Ausdrücke überprüfen willst, nimmt man in der Tat die matches() Methode. Allerdings bin ich in regulären Ausrücken nicht soooo fit, kann dir also dazu nicht viel sagen...

*grüssle*
MeinerEiner


----------



## Trash (3. November 2006)

Hallo,
danke für die Antworten. Ich habe noch eine letzte Frage.

produktliste[nummer] liefert mir ja "Material.daskj" zurück, wenn ich ausgebe. Das muss der Name der Klasse sein (Material) und irgendwas dahinter 

Wenn ich nun machen möchte:

String str = produktliste[nummer];

sagt er mir ja, dass String und Produkt nicht zueinander passen. Ist auch verständlich, doch wie bekomme ich die Ausgabe des Objekts der Klasse Material in einen String ? Oder gibt es einen einfacheren Befehl mit dem man überprüft von welcher Klasse die Objekte in produkliste[] abstammen?

EDIT:
Habs hinbekommen mit instanceOf


----------

