Einfachen, ein beliebiges Zeichen oft erkennenden Regex Parser selber schreiben - wie vorgehen?

Wertes Publikum, ich möchte objektorientiert einen Regex-Parser, der eine fixe Folge von Anfangsbuchstaben, dann beliebig viele Buchstaben und dann eine fixe Folge von Buchstaben erkennt schreiben.
Zum Beispiel: bcdx*efg , wobei x ein beliebiges Zeichen ist
Wie muss ich vorgehen? Vielen Dank!
 
Das habe ich schon,
Java:
interface I {
    boolean check(int line, String value);
}

class BA implements I {
    private int l;

    public BA(int l) {
        this.l = l;
    }

    @Override
    public boolean check(int line, String value) {
        return l == line && ("True".equals(value) || "False".equals(value));
    }
}

class BB implements I {
    private int l;
    private String v;

    public BB(int l, String v) {
        this.l = l;
        this.v = v;
    }

    @Override
    public boolean check(int line, String value) {
        return l == line && v.equals(value);
    }
}

class FB implements I {
    int l;
    double a, b;

    public FB(int l, double a, double b) {
        this.l = l;
        this.a = a;
        this.b = b;
    }

    @Override
    public boolean check(int line, String value) {
        try {
            return l >= line && a <= Double.valueOf(value) && b >= Double.valueOf(value);
        } catch (NumberFormatException n) {
            return false;
        }
    }
}


aba mit wiederkehrenden Buchstaben komm ich nicht klar.
 

mrBrown

Super-Moderator
Mitarbeiter
..und wie sollte mir das helfen? wäre super, wenn du auf die Fragestellung eingehen könntest.
Wenn deine Frage ist, "Wie muss ich vorgehen", kann man da kaum näher drauf eingehen, zumindest nicht in Zusammenhang mit dem Code den du gezeigt hast.


Wie schon zwei mal gesagt: Gibts in Java schon fertig. Wenns zur Übung, solltest du zumindest irgendeinen Ansatz haben, zu dem man was sagen könnte. Kommentar #3 und #4 sind nicht wirklich hilfreich, um dir irgendwie zu helfen...
 
Dann versuche ich zu beschreiben. Der Parser soll nicht zeichenbasiert sondern zeilenbasiert vorgehen, dabei kann ein verschiedener Wert in einer Zeile stehen. Der Spielstand besteht aus einer Zeichendatei.
Zum Beispiel ab Zeile ~835:
Java:
277.223 //(fix)
True
False
False
True
//(~49 Zeilen mit False or True)
ITEMS PARAMETERS IN INVENTORY //(fix)
Alle False Zeilen sollen True Zeilen bekommen. Das funktioniert auch schon aber jetzt kommt der Hammer, ca 150 nach der ITEMS... Zeile steht:
Java:
0 //(fix)
False //(fix)
1 //(fix)
100.2648 //(zwischen 0 und 200)
100 //(zwischen 0 und 100)
20.21889 //(zwischen 0 und 100)
0 //(0 oder 1)
True //(True or False)
True //(True or False)
False //(True or False)
4905 //(irgendwelcher Wert)
4964 //(irgendwelcher Wert)
6 //(irgendwelcher Wert)
0 //(irgendwelcher Wert)
99.73041 //(zwischen 0 und 100)
7999 //(irgendwelcher Wert)
25 //(beliebig oft vorkommende Zeile n zwischen 0 und 100)
26 //(beliebig oft vorkommende Zeile n zwischen 0 und 100)
...
22061941 //(fix)
Und genau dort bei (beliebig oft vorkommende Zeile n zwischen 0 und 100) und ... funktioniert Parser nicht richtig. :( Die verschiedenen Werte stehen zum Beispiel für Gold, Ausdauer, Gesundheit, Müdigkeit, Tatkraft usw!
 

mihe7

Top Contributor
Java:
String line;
while ((line = reader.readLine()) != null) {
    int value = Integer.parseInt(line);
    if (value >= 0 && value <= 100) {
        // ah, eine beliebig oft vorkommende Zeile n zwischen 0 und 100
    } else {
       // oh, der fixe Wert
    }
}
 

mihe7

Top Contributor
Warum nicht? Du willst so lange Zeilen einlesen, bis kein Wert mehr zwischen 0 und 100 rauskommt. Im else-Zweig würdest Du natürlich die Schleife beenden. Oder, man schreibt es etwas um:

Java:
String line;
boolean done = false;
while (!done && (line = reader.readLine()) != null) {
    int value = Integer.parseInt(line);
    if (value >= 0 && value <= 100) {
        // ah, eine beliebig oft vorkommende Zeile n zwischen 0 und 100
    } else {
       // oh, der fixe Wert
       done = true;
    }
}
// hier enthält line den ersten Wert, der nicht zwischen 0 und 100 liegt
 
Ich kannte mal jemanden der das so an die Tafel geschrieben hat in der Vl. hrhrhr Ist aber schon Jährchen her hrhr. Aber , @mihe7 , das Problem ist ich möchte das objektorientiert dynamisch programmiert mit nur zwei geschachtelten Schleifen und wenigen IFs lösen. Wie gehe ich vor am besten? BA gleich beliebiger Boolean Wert in Zeile l. BB gleich bestimmter Wert in Zeile l. FB gleich bestimmter Float Wert in Zeile <= l. Und das Problem, die eindeutigen Zeichen "ITEMS PARAMETERS IN INVENTORY" stehen mittig und einmal sind diesen Werte vorgestellt und einmal sind diesen Werte nachgestellt....
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Ich komme nicht mehr weiter bei so einer einfachen Sache... Java Basics - Anfänger-Themen 18
C Die Klasse Menge mit Konstruktoren und einfachen Methoden Java Basics - Anfänger-Themen 5
J Einfachen String ausgeben Java Basics - Anfänger-Themen 4
J Wo liegt nur an dieser einfachen Bedingung mein Fehler? Java Basics - Anfänger-Themen 8
E Input/Output einfachen Socket für XML-Anfragen bauen Java Basics - Anfänger-Themen 13
A Erstellung eines einfachen Plugin HILFE ! Java Basics - Anfänger-Themen 19
L einfachen kalender Programmieren HA! Java Basics - Anfänger-Themen 76
A Doppelter Backslash durch einen einfachen Backslash ersetzen Java Basics - Anfänger-Themen 6
StrikeTom Was ist an dieser einfachen funktion falsch? Java Basics - Anfänger-Themen 5
Y Problem mit einfachen Methoden Java Basics - Anfänger-Themen 18
F "n cannot be resolved" Fehler im einfachen programm - Warum? Java Basics - Anfänger-Themen 11
C Konstanten zu einfachen Berechnungen unterhalb Main Methode Java Basics - Anfänger-Themen 19
brainray Einfachen RMI Server bei einem Provider zum Laufen bringen Java Basics - Anfänger-Themen 3
Y Einfachen Quelltext in UML darstellen mit Eclipse Java Basics - Anfänger-Themen 8
Binary.Coder Bubblesort in einfachen unmissverständlichen Sätzen Java Basics - Anfänger-Themen 2
S Benutzereingaben in einfachen numerischen Matheaufgaben Java Basics - Anfänger-Themen 7
M Suche einen ganz einfachen Editor (syntax Highlighting+comp) Java Basics - Anfänger-Themen 7
F Erstellen von einfachen JFrame Java Basics - Anfänger-Themen 2
B Ertsellung einer einfachen Matrix Java Basics - Anfänger-Themen 12
G Problem mit einer ganz einfachen Funktion Java Basics - Anfänger-Themen 8
M Hilfe bei einem einfachen Java-Programm Java Basics - Anfänger-Themen 41
B Brauche Hilfe bei nem ganz einfachen Programm... Java Basics - Anfänger-Themen 4
V_Fynn03 Beliebiges Element in einer Liste löschen (Java)(Lineare Datenstrukturen) Java Basics - Anfänger-Themen 9
S beliebiges Datum einlesen, Wochentag eines Datums ermitteln Java Basics - Anfänger-Themen 18
J Quelltext mit komischen griechischen Zeichen Java Basics - Anfänger-Themen 4
T or zeichen Java Basics - Anfänger-Themen 2
L 4 stelliges Passwort aus bestimmten Zeichen. Java Basics - Anfänger-Themen 27
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
O Array mit einem Zeichen vergleichen Java Basics - Anfänger-Themen 1
S Was bedeutet das Zeichen := Java Basics - Anfänger-Themen 9
K Wie String prüfen ob drei mal das gleiche Zeichen vorkommt? Java Basics - Anfänger-Themen 7
L Zeichen an bestimmter Stelle auslesen Java Basics - Anfänger-Themen 4
S Arrayausgabe und nur einmal ein Zeichen davor Java Basics - Anfänger-Themen 12
johnboyne Java Zeichen Trennen Java Basics - Anfänger-Themen 1
T Zeichen im String verschiebe Java Basics - Anfänger-Themen 17
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Tino1993 for-Schleife, die eine vorgegebene Anzahl von Zeichen ausgibt Java Basics - Anfänger-Themen 3
pkm Regexproblem - Wie kann ich zwei oder mehr beliebige Zeichen matchen? Java Basics - Anfänger-Themen 7
marcooooo Separator zwischen allen Zeichen eines Strings einfügen Java Basics - Anfänger-Themen 29
Dimax Erste Schritte String replace alle Zeichen Java Basics - Anfänger-Themen 10
M Regex-Ausdruck: Alle Zeichen bis auf ein bestimmtes erlauben (p{L}) Java Basics - Anfänger-Themen 5
M Regex für bestimmte Wörter bzw. bestimmte Zeichen erstellen Java Basics - Anfänger-Themen 5
F RegEx "+" nur als Zeichen, nicht als Operator oder Sonstiges Java Basics - Anfänger-Themen 2
J Zeichen im String zählen Java Basics - Anfänger-Themen 3
J ObjectOutputStream writeChars, komische Zeichen nur in 1. Zeile Java Basics - Anfänger-Themen 2
H Fehlerausgabe (Ungewollte Zeichen) Java Basics - Anfänger-Themen 1
R Komische Zeichen in Java Java Basics - Anfänger-Themen 5
N Zeichen in einem Textfeld zählen und hinterlegen Java Basics - Anfänger-Themen 6
J Vorkommen von Zeichen Java Basics - Anfänger-Themen 44
H Verschiebung von Zeichen Java Basics - Anfänger-Themen 18
O String von vorne nach hinten an einem Zeichen Java Basics - Anfänger-Themen 10
S char auf buchstabe/zeichen prüfen Java Basics - Anfänger-Themen 1
P Zeichenkette Zeichen ausschlißen funktioniert nicht richtig Java Basics - Anfänger-Themen 9
G Teil(e) eines Strings entfernen wenn spezifische Zeichen (< & >) vorkommen Java Basics - Anfänger-Themen 5
L String auf bestimmte zeichen untersuchen Java Basics - Anfänger-Themen 9
D gebe string zurück mit von bis bestimmtes Zeichen Java Basics - Anfänger-Themen 4
L Rekursion größtes Zeichen Java Basics - Anfänger-Themen 8
S Zeichen zählen kopierter Text Java Basics - Anfänger-Themen 6
Y String auf allgemein Zeichen untersuchen Java Basics - Anfänger-Themen 3
S String trennen nach beliebigen Zeichen Java Basics - Anfänger-Themen 3
C Zeichen im String bis zu bestimmter Stelle entfernen Java Basics - Anfänger-Themen 6
S Java Text splitten mit Tabs, Zeilen, Zeichen und Klammern. Java Basics - Anfänger-Themen 6
H Zeichen im algorithmus Java Basics - Anfänger-Themen 4
S Das Anführungszeichen(") Zeichen in einen String setzen Java Basics - Anfänger-Themen 1
G Zeichen suchen und Ausgeben. Java Basics - Anfänger-Themen 3
D Input/Output Split am Zeichen | Java Basics - Anfänger-Themen 2
B zeichen eines String mit der kleinsten Frequenz zurückgeben Java Basics - Anfänger-Themen 25
m0n4ch Variablen String auf ungültige Zeichen überprüfen Java Basics - Anfänger-Themen 13
Voreck String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 9
R Zeichen in String vergleichen Java Basics - Anfänger-Themen 75
G Gibt es eine Methode die bei einem StringBuilder n mal das Zeichen c hinzufügt? Java Basics - Anfänger-Themen 6
D String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 5
S Zeichen ab Suchstring einlesen Java Basics - Anfänger-Themen 6
Z char Array unbekanntes Zeichen selbstständig anlegen Java Basics - Anfänger-Themen 6
M Pipe-Zeichen "|" in Java Java Basics - Anfänger-Themen 1
S Zeichen von abgerundeten Rechtecken auf einem Applet Java Basics - Anfänger-Themen 5
R Anzahl von Zeichen in einem Char Array Java Basics - Anfänger-Themen 4
F StringBuilder: Zeilenumbruch nach x Zeichen ohne Worttrennung Java Basics - Anfänger-Themen 1
F Zeichen einer Datei zaehlen Java Basics - Anfänger-Themen 1
D Java doppelte Zahl/Zeichen in einem String entfernen Java Basics - Anfänger-Themen 6
W JTextField-Objekt liest Umlaute mit falschen Zeichen ein Java Basics - Anfänger-Themen 5
G zeichen einer Zeile löschen Java Basics - Anfänger-Themen 4
M problem mit diesem zeichen | Java Basics - Anfänger-Themen 10
N Bestimmte Zeichen eines Strings umwandeln Java Basics - Anfänger-Themen 4
W char-Array auf bestimmte Zeichen prüfen Java Basics - Anfänger-Themen 10
B lanterna einzelne Zeichen aus dem Terminal löschen Java Basics - Anfänger-Themen 0
S Input/Output Alphabet in eine Datei schreiben und Anzahl von Zeichen ausgeben. Java Basics - Anfänger-Themen 4
C Anzahl bestimmter Zeichen in einem String ausgeben Java Basics - Anfänger-Themen 7
I String abschneiden erste und letzte Zeichen Java Basics - Anfänger-Themen 3
X Wann schreibt man diese Syntax zeichen { } Java Basics - Anfänger-Themen 8
S Leerzeichen zwischen zwei Zeichen im String entfernen Java Basics - Anfänger-Themen 19
F Methoden split() - Mehrere Zeichen Java Basics - Anfänger-Themen 5
M Input/Output Text auf Fenster zeichen Java Basics - Anfänger-Themen 2
F In einem String nach einem String suchen und Zeichen danach ausgeben Java Basics - Anfänger-Themen 6
S Kleines Zeichen berechnen Java Basics - Anfänger-Themen 5
Q Erste Schritte Zeichen in String farblich hervorheben Java Basics - Anfänger-Themen 4
U markierten Text auf Zeichen zuvor/danach pruefen Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben