Stringvergleich mit Wildcards

Hallo

hänge gerade an einem Stringvergleich in den ich gerne ein Wildcard einbauen möchte.

„inputFile“ soll dabei ein String (ohne Wildcard) sein, der über eine equals-Methode mit dem String „ab*“ (* soll dabei ein Wildcard sein und durch beliebig viele Zeichen ersetzbar sein) verglichen werden soll.

if(inputFile.equals(„ab*“))
{

}

Danke für euer Bemühen
Zwiggel

Moien

if(inputFile.indexOf(„ab“) == 0)

Oder du kuckst dir die RegExp-Klassen näher an.

cu

Danke für die schnelle Antwort,

aber indexOf reicht für meine Fall nicht aus, was vor und nach dem Suchmuster kommt ist in meinem Fall nicht egal!

Aber die Klasse java.util.regex.* sieht vielversprechend aus, bin gerade dabei die API-doc zu lesen.

Vielen Dank, scheint genau das gesuchte zu sein.
Zwiggel

Für den Fall das es noch andere gibt die sich für die Regex-Klassen interessieren:

/*
Dem Benutzer soll neben der Pfadangabe über einen JFileChooser auch die Möglichkeit geben werden einen Pfad von Hand anzugeben und dieser Pfad soll nun auf verschiedene Merkmale überprüft werden z.B. ob er mit einem Slash anfängt, also vermutlich eine absolute Pfadangabe darstellen soll.
*/

String inputFile;
boolean isAbsolutePath;

private void SlashTest()
 {
 //isAbsolutePath = true wenn inputFile eine absolute Pfadangabe ist;
 (also mit einem / beginnt!)

 //Suchmuster "^/" definieren, "^" vor dem Slash damit / am Anfang stehen
 muss!
 Pattern slashPattern = Pattern.compile("^/");

 //Matcher definieren in dem nach dem Pattern gesucht werden soll!
 Matcher inputMatcher = slashPattern.matcher(inputFile);

 if(inputMatcher.find())
 {
 isAbsolutePath = true;
 System.out.println(inputFile + " ist eine absolute Pfadangabe");
 }else{
 System.out.println(inputFile + " ist keine absolute Pfadangabe");
 }
}

Die boolean „isAbsolutePath“ wird auf true gesetzt wenn der String „inputFile“ mit einem „/“ beginnt.

Zwiggel

Moien

String inputFile;
boolean isAbsolutePath;

private void SlashTest()
 {
 isAbsolutePath = inputFile.indexOf("/") == 0;

}

und der Test schlägt bei Windows fehl.

cu

Hallo

ja stimmt der Test ist nicht ganz glücklich da er Plattformabhängig ist und nur unter Linux funktioniert!

Nicht ganz zum eigentlichen Thema gehörend, aber gibt es eine „Systemvariable“, die angibt welche Plattform (Windows,Linux,Mac) gerade genutzt wird?

Danke
Zwiggel

Moien

ja stimmt der Test ist nicht ganz glücklich da er
Plattformabhängig ist und nur unter Linux funktioniert!

File.isAbsolute() ?

Nicht ganz zum eigentlichen Thema gehörend, aber gibt es eine
„Systemvariable“, die angibt welche Plattform
(Windows,Linux,Mac) gerade genutzt wird?

Kuck mal in die Dokumentation von java.lang.System.getProperties().

cu