String mit einem "Schema" vergleichen

madbutt

Grünschnabel
Hi ich habe folgendes Problem:

Ich soll einen String mit einem vorgegebenen Schema vergleichen, welches
so aussieht:

AAaaaaa -> "A" bedeutet: muss eingegeben werden und alphanumerisch sein
"a" bedeutet: alphanumerisch, kann aber auch blank sein

Nnnnnnn -> "N" beduetet: muss eingegeben werden und numerisch sein
"n" bedeutet; numerisch, kann aber auch blank sein.

ebenfalls wären Kombinationen wie z.B "ANAnnaa" möglich.

Nun soll ich mit Hilfe solch eines Schemas überprüfen ob z.B der String

"F2A99ST" dem Schema entspricht oder nicht......

Die Methode soll true oder false zurückgeben.

hier mal einige Beispiele:

String Schema return comment
------------------------------------------------------------------------------------
1232 33 Nnnnnnnnn false keine Leerzeichen bei numerisch
1234567 NNnn false string länger als schema
00445 NNNNn false keine führenden nullen bei numerisch
abc AAAA false erste stelle muss eingegeben werden




So ich hoffe ihr versteht was ich meine. ich nämlich nicht *g*
Hat jemand vielleicht ne Idee wie man da drangehen kann ?

Vielen Dank

Andy
 
Zuletzt bearbeitet:
Original geschrieben von madbutt
Hi ich habe folgendes Problem:

Ich soll einen String mit einem vorgegebenen Schema vergleichen, welches
so aussieht:

AAaaaaa -> "A" bedeutet: muss eingegeben werden und alphanumerisch sein
"a" bedeutet: alphanumerisch, kann aber auch blank sein

Nnnnnnn -> "N" beduetet: muss eingegeben werden und numerisch sein
"n" bedeutet; numerisch, kann aber auch blank sein.

ebenfalls wären Kombinationen wie z.B "ANAnnaa" möglich.

Nun soll ich mit Hilfe solch eines Schemas überprüfen ob z.B der String

"F2A99ST" dem Schema entspricht oder nicht......

Die Methode soll true oder false zurückgeben.

hier mal einige Beispiele:

String Schema return comment
------------------------------------------------------------------------------------
1232 33 Nnnnnnnnn false keine Leerzeichen bei numerisch
1234567 NNnn false string länger als schema
00445 NNNNn false keine führenden nullen bei numerisch
abc AAAA false erste stelle muss eingegeben werden




So ich hoffe ihr versteht was ich meine. ich nämlich nicht *g*
Hat jemand vielleicht ne Idee wie man da drangehen kann ?

Vielen Dank

Andy

Also wenn diese Aufgabe eine von einem "Lehrer" gestellte Aufgabe sein soll, dann sag deinen Lehrer, mann soll keine Lösungen für Probleme suchen wofuer es lange getestete Lösungen schon gibt (in diesem Fall Reguläre Ausdrücke).

Da Lehrer aber selten mit sich über ihre wirren Aufgabenstellungen sprechen lassen:
Solltest du das Schema in einen Regulären Ausdruck umwandeln und dann den String gegen den Ausdruck prüfen.
Sprich A umwandeln in .[a-Z, ]
und N umwandeln in .[0-9]

Danach kannst du per javax.util.regex die prüfung durchführen
siehe:
Code:
inputstring = "F2A99ST";
shema =  "ANAnnaa";

// regex ist dann das umgewandelte shema 

if(Pattern.compile(regex).matcher(input).matches() &&
   inputstring.length()==shema.length() ) 
               passt = true;

Natürlich ist der Code nicht copy und paste fähig ;)
 
danke dass es so schnell gíng .... regular expressions.....
hab ich zwar noch nicht mit gearbeitet aber viel von gehört.

ich probiers mal. Danke.

Servus

Andy
 

Neue Beiträge

Zurück