Überprüfung mit match ?

Trash

Erfahrenes Mitglied
moin,
ich möchte folgendes machen:

Code:
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
 
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
Code:
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
 
moin,
also produktliste[position] ist ein Array mit den Objekten der Klasse Produkt ;)

Code:
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
 
Im javadoc zu String findest du alle Methoden die du darauf aurufen kannst.

Für dich interessant sind dabei startsWith und indexOf.
 
moin,
also produktliste[position] ist ein Array mit den Objekten der Klasse Produkt ;)

Dann liefert dir
Code:
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:
Code:
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:
Code:
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
 
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 :P

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
 
Zuletzt bearbeitet:
Zurück