Reguläre Ausdruck

Wirtschaftsinformatiker

Bekanntes Mitglied
Ist mein Code richtig?

Java:
public class RegEx
{
    /**
     * Eine Methode, die wahr zurückgibt, wenn ein
     * übergebener String der Klassenkonvention entspricht.
     * @param className ein beliebiger String ungleich null
     * @return true oder false.
     */
    public boolean  className (String className ){

        return className.matches("[A-Z][a-zA-Z0-9_]*");

    }

    /**
     * Eine Methode, die wahr zurückgibt, wenn ein
     * übergebener String der Methodenkonvention entspricht.
     * @param methodName ein beliebiger String ungleich null
     * @return true oder false.
     */
    public boolean methodName (String methodName ){

        return methodName.matches("(_?[a-z]([a-zA-Z0-9]+)?)");

    }

    /**
     * Eine Methode, die wahr zurückgibt, wenn ein
     * übergebener String der Feldkonvention entspricht.
     * @param feldName ein beliebiger String ungleich null
     * @return true oder false.
     */
    public boolean feldName (String feldName){

        return feldName.matches("(_?[a-z]([a-zA-Z0-9]+)?)");
    }

}
 

KonradN

Super-Moderator
Mitarbeiter
Ist mein Code richtig?
Hinweis Lesbarkeit: Was macht eine Methode className? Methoden sollten ein Verb haben, damit der Name direkt aussagt, was die Methode macht. isClassName wäre dann z.B. besser.

Funktionalität: Hast Du die Methoden denn getestet? Dann solltest Du wissen, ob diese das gewünschte Ergebnis bringen. Da wird die Anforderungen nicht kennen, können wir nicht sagen, ob es richtig oder falsch ist.
 

Wirtschaftsinformatiker

Bekanntes Mitglied
Hinweis Lesbarkeit: Was macht eine Methode className? Methoden sollten ein Verb haben, damit der Name direkt aussagt, was die Methode macht. isClassName wäre dann z.B. besser.

Funktionalität: Hast Du die Methoden denn getestet? Dann solltest Du wissen, ob diese das gewünschte Ergebnis bringen. Da wird die Anforderungen nicht kennen, können wir nicht sagen, ob es richtig oder falsch ist.
Die reguläre Ausdrücke wie +, * oder _ habe ich richtig verwendet?
Kann einen Unterstrich am Anfang der Methodenname oder Feldnamen vor kommen?
 

Wirtschaftsinformatiker

Bekanntes Mitglied
Hinweis Lesbarkeit: Was macht eine Methode className? Methoden sollten ein Verb haben, damit der Name direkt aussagt, was die Methode macht. isClassName wäre dann z.B. besser.

Funktionalität: Hast Du die Methoden denn getestet? Dann solltest Du wissen, ob diese das gewünschte Ergebnis bringen. Da wird die Anforderungen nicht kennen, können wir nicht sagen, ob es richtig oder falsch ist.
Ich habe auch eigene Junit Test geschrien. Ist das richtig?
Java:
public class RegExTest
{

    RegEx regEx = new RegEx();

    @Test
    public void testKlassennameNegativ(){

        assertFalse(regEx.className("klasse"));
    }

    @Test
    public void testKlassennamePositiv(){

        assertTrue(regEx.className("Klasse2"));
    }

    @Test
    public void testMethodNameNegativ(){

        assertFalse(regEx.methodName("Methode"));
    }

    @Test
    public void testMethodNamePositiv(){

        assertTrue(regEx.methodName("methode"));
    }

    @Test
    public void testFeldNameNegativ(){

        assertFalse(regEx.feldName("Feld"));
    }

    @Test
    public void testFeldNamePositiv(){

        assertTrue(regEx.feldName("feld2"));
    }

}
 

KonradN

Super-Moderator
Mitarbeiter
Ich habe auch eigene Junit Test geschrien. Ist das richtig?
Da wäre meine Antwort ganz klar: NEIN. Nicht, weil da direkt Fehler auffallen, sondern weil die Tests ja kaum etwas testen. Vor allem wenn Du selbst Fragen stellst wie:
Kann einen Unterstrich am Anfang der Methodenname oder Feldnamen vor kommen?
Entweder das ist eine Frage der Anforderung. Die kennen wir nicht! Wenn es um reine Java Regeln geht, dann wären das die Regeln für Bezeichner in Java. Da wäre dann die JLS zu prüfen: https://docs.oracle.com/javase/specs/jls/se19/html/jls-3.html#jls-3.8
Oder geht es um Naming Conventions? Das würde erklären, dass Du keien Umlaute erlaubst in Klassennamen (aus Java Sicht ok!) und mit einem großen Buchstaben starten willst. Aber ein _ ist in Klassennamen eigentlich auch nicht vorgesehen, da man ja ein Upper Camelcase verwendet.

Oder es ist eine Frage der Funktionalität. Dazu dienen die Unit Tests. Die Unit-Tests müssen zeigen, dass die Anforderungen erfüllt sind. (Sauber geschriebene Unit Tests sind dann eine Form der Dokumentation der Anforderungen!)

==> Daher: Ich habe keine Ahnung von den Anforderungen. Daher kann ich nicht sagen, ob die regulären Ausdrück korrekt sind. Wenn Dir die Anforderungen vorliegen, dann kannst (und musst!) Du diese explizit prüfen in Deinen Unit Tests.
 

Wirtschaftsinformatiker

Bekanntes Mitglied
Da wäre meine Antwort ganz klar: NEIN. Nicht, weil da direkt Fehler auffallen, sondern weil die Tests ja kaum etwas testen. Vor allem wenn Du selbst Fragen stellst wie:

Entweder das ist eine Frage der Anforderung. Die kennen wir nicht! Wenn es um reine Java Regeln geht, dann wären das die Regeln für Bezeichner in Java. Da wäre dann die JLS zu prüfen: https://docs.oracle.com/javase/specs/jls/se19/html/jls-3.html#jls-3.8
Oder geht es um Naming Conventions? Das würde erklären, dass Du keien Umlaute erlaubst in Klassennamen (aus Java Sicht ok!) und mit einem großen Buchstaben starten willst. Aber ein _ ist in Klassennamen eigentlich auch nicht vorgesehen, da man ja ein Upper Camelcase verwendet.

Oder es ist eine Frage der Funktionalität. Dazu dienen die Unit Tests. Die Unit-Tests müssen zeigen, dass die Anforderungen erfüllt sind. (Sauber geschriebene Unit Tests sind dann eine Form der Dokumentation der Anforderungen!)

==> Daher: Ich habe keine Ahnung von den Anforderungen. Daher kann ich nicht sagen, ob die regulären Ausdrück korrekt sind. Wenn Dir die Anforderungen vorliegen, dann kannst (und musst!) Du diese explizit prüfen in Deinen Unit Tests.
Es geht nur um Naming Convention, wie die Namen geschrieben werden und mithilfe von regulären Ausdrücken zeigen, welche Namen bei Methode, Klasse und Felder erlaubt sind
 

KonradN

Super-Moderator
Mitarbeiter
Es geht nur um Naming Convention, wie die Namen geschrieben werden und mithilfe von regulären Ausdrücken zeigen, welche Namen bei Methode, Klasse und Felder erlaubt sind
Dann kannst Du schauen:

Ist nicht wirklich so exakt beschrieben, aber da ist mein Verständnis, dass da kein "_" etwas verloren hat.
Ebenso bei den Methoden.

Aber zur Not hast Du Deine Auslegung. Diese solltest Du dann aber in den Unit Tests klar dokumentieren und entsprechend testen.

Bei den Tests kannst Du Dir ja den Regulären Ausdruck nehmen und die möglichen Kombinationen testen und dann auch schauen, dass alle Abweichungen wirklich zu einem nicht erkennen führen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Warum zeigt dieser reguläre Ausdruck true an? Java Basics - Anfänger-Themen 1
R Reguläre Ausdruck definieren Java Basics - Anfänger-Themen 3
W Reguläre Ausdrücke Java Basics - Anfänger-Themen 1
W Reguläre Ausdrücke Java Basics - Anfänger-Themen 1
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
K FYI: Reguläre Ausdrücke nutzen ja/nein Java Basics - Anfänger-Themen 2
B Reguläre Ausdrücke Java Basics - Anfänger-Themen 2
P Reguläre Ausdrücke und Korrektheit Java Basics - Anfänger-Themen 2
0 Reguläre Ausdrücke bzw. Zahlenformat im String Java Basics - Anfänger-Themen 7
G Reguläre Ausdrücke Zeichenketten Java Basics - Anfänger-Themen 12
C Klassen Reguläre Ausdrücke auf Gleichheit prüfen Java Basics - Anfänger-Themen 5
J Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
C Reguläre-Ausdrücke Java Basics - Anfänger-Themen 5
J reguläre Ausdrücke Java Basics - Anfänger-Themen 1
B Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
B Java - Reguläre Ausdrücke - RegEx oder Regular Expressions - Eckige Klammern Java Basics - Anfänger-Themen 2
H Erste Schritte Von jpg zu jpeg // reguläre Ausdrücke Java Basics - Anfänger-Themen 3
K Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
K Reguläre Ausdrücke Java Basics - Anfänger-Themen 6
B Reguläre Ausdrücke Java Basics - Anfänger-Themen 5
K Reguläre Ausdrücke Java Basics - Anfänger-Themen 5
C Reguläre Ausdrücke: string.matches() und gefangene Gruppen Java Basics - Anfänger-Themen 12
S Reguläre Ausdrücke richtig einsetzten Java Basics - Anfänger-Themen 5
T Reguläre Ausdrücke Java Basics - Anfänger-Themen 18
S reguläre Audrücke verbinden Java Basics - Anfänger-Themen 18
0 Reguläre Ausdrücke und Funktionen Java Basics - Anfänger-Themen 2
D Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
S Reguläre Ausdrücke Java Basics - Anfänger-Themen 16
A Reguläre Ausdrücke Frage Java Basics - Anfänger-Themen 3
N reguläre ausdruech und exception Probleme Java Basics - Anfänger-Themen 7
E Reguläre Ausdrücke mit sehr variablen Eigenschaften Java Basics - Anfänger-Themen 2
N Reguläre Ausdrücke - bekomme Suchkriterium nicht hin Java Basics - Anfänger-Themen 3
J Reguläre Ausdrücke in Java Java Basics - Anfänger-Themen 2
J Reguläre Ausdrücke Java Basics - Anfänger-Themen 6
S Strings und reguläre Ausdrücke Java Basics - Anfänger-Themen 2
N Reguläre Ausdrücke Java Basics - Anfänger-Themen 4
S Reguläre Ausdrücke Java Basics - Anfänger-Themen 2
M Reguläre ausdrücke? Java Basics - Anfänger-Themen 8
D Reguläre Ausdrücke: Anzahl Wiederholungen als Variable? Java Basics - Anfänger-Themen 3
A Reguläre Ausdrücke Java Basics - Anfänger-Themen 2
M Reguläre Ausdrücke - maskieren von Zeichen? Java Basics - Anfänger-Themen 9
M Reguläre Ausdrücke und Ausgabe Java Basics - Anfänger-Themen 10
K Reguläre Ausdrücke - Gefundene Tokens direkt ermitteln Java Basics - Anfänger-Themen 3
J Reguläre Ausdrücke: Zeichenfolge ausschließen Java Basics - Anfänger-Themen 2
G Reguläre Ausdrücke Java Basics - Anfänger-Themen 13
L java und reguläre ausdrücke Java Basics - Anfänger-Themen 4
G Reguläre Ausdrücke zum Filtern von logfiles Java Basics - Anfänger-Themen 2
T Reguläre Ausdrücke? Java Basics - Anfänger-Themen 3
E Reguläre Ausdrücke Java Basics - Anfänger-Themen 17
O reguläre Ausdrücke bei java.util.regex.Pattern Java Basics - Anfänger-Themen 4
A Reguläre Ausdrücke der Pfade unter Windows und Unix Java Basics - Anfänger-Themen 3
N Reguläre Ausdrücke Java Basics - Anfänger-Themen 5
G Problem reguläre Ausdrücke Java Basics - Anfänger-Themen 4
A Reguläre Ausdrücke: Inhalt zwischen zwei Schlüsselwörtern Java Basics - Anfänger-Themen 2
A Reguläre Ausdrücke: Problem mit Backslash Java Basics - Anfänger-Themen 3
hebein PDF Ausdruck auf Drucker - Probleme mit Format Java Basics - Anfänger-Themen 17
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
P Einfacher regulärer Ausdruck (RegEx) für E-Mail-Adressen Java Basics - Anfänger-Themen 2
KogoroMori21 Boolscher Ausdruck Java Basics - Anfänger-Themen 15
C Ausdruck Java Basics - Anfänger-Themen 4
E Boolescher Ausdruck Java Basics - Anfänger-Themen 1
M Regex-Ausdruck: Alle Zeichen bis auf ein bestimmtes erlauben (p{L}) Java Basics - Anfänger-Themen 5
G Warum ist hier ein Lamda-Ausdruck möglich Java Basics - Anfänger-Themen 2
O Lambda Ausdruck mit Wildcard einschränken Java Basics - Anfänger-Themen 5
F Ist das ein korrekter Regex-Ausdruck? Java Basics - Anfänger-Themen 12
B Interface Java Lambda Ausdruck. Java Basics - Anfänger-Themen 11
B Regulärer Ausdruck Java Basics - Anfänger-Themen 12
G Boolschen Ausdruck true machen Java Basics - Anfänger-Themen 2
F Ausdruck wirft unerwarteten Error Java Basics - Anfänger-Themen 2
D Regulärer Ausdruck Java Basics - Anfänger-Themen 8
K Regulären Ausdruck in Java abbilden Java Basics - Anfänger-Themen 4
B Regulärer Ausdruck Java Basics - Anfänger-Themen 3
M Lambda - Ausdruck zu Beschreibung erstellen Java Basics - Anfänger-Themen 7
D Java Ausdruck erzeugen / Formular Java Basics - Anfänger-Themen 4
B Boolscher Ausdruck für mich unverständlich Java Basics - Anfänger-Themen 7
A regulären Ausdruck mit Hilfe der Klasse Scanner in einem String finden Java Basics - Anfänger-Themen 2
J Frage zu bestimmtem Ausdruck Java Basics - Anfänger-Themen 2
G Lambda Ausdruck: Welche Methode ist die Richtige? Java Basics - Anfänger-Themen 1
C Auswertung Ausdruck mit Punknotation + Objekt als Parameter Java Basics - Anfänger-Themen 3
M Arithemtischer Ausdruck unklar Java Basics - Anfänger-Themen 2
C Regulärer Ausdruck matched nicht Java Basics - Anfänger-Themen 2
A Lässt sich dieser Ausdruck irgendwie einfacher schreiben? Java Basics - Anfänger-Themen 4
H Regulären Ausdruck automatisch erstellen Java Basics - Anfänger-Themen 5
T Erste Schritte Im arithm. Ausdruck Zeichen trennen? Java Basics - Anfänger-Themen 13
D Boolescher Ausdruck - Problem Java Basics - Anfänger-Themen 6
B Regulärer Ausdruck gesucht Java Basics - Anfänger-Themen 6
M regulärer Ausdruck funktioniert nicht Java Basics - Anfänger-Themen 6
R Suche Regex Ausdruck für HTML Java Basics - Anfänger-Themen 11
E Hilfe bei einem Regulären Ausdruck Java Basics - Anfänger-Themen 7
X Regulärer Ausdruck für einen FileNameFilter Java Basics - Anfänger-Themen 2
S Einfaches Regulaerer Ausdruck Problem Java Basics - Anfänger-Themen 7
S regulärer Ausdruck HTML Java Basics - Anfänger-Themen 5
turmaline Ein regulärer Ausdruck für HTML-Sonderzeichen Java Basics - Anfänger-Themen 3
3 3. Element mit regulären Ausdruck suchen Java Basics - Anfänger-Themen 12
M regex-Ausdruck irgendein Buchstabe 1 mal Java Basics - Anfänger-Themen 8
S Was bedeutet dieser ausdruck? Java Basics - Anfänger-Themen 9
S String nach Ausdruck durchsuchen und Folgeattribut ausgeben Java Basics - Anfänger-Themen 3
H Ausdruck vereinfachen Java Basics - Anfänger-Themen 8
J Datentypen String splitten ohne festen Ausdruck Java Basics - Anfänger-Themen 8
H while schleife ohne ausdruck Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben