Programmeurs vaak willen ervoor zorgen dat de gebruikers van de gegevens zal invoeren in hun programma's zullen zich houden aan specifieke formaten of normen . Een boekdatum is een voorbeeld van een dergelijke ingang . Datumformaten kunnen variëren , afhankelijk van de regio of gewoonte van de gebruiker . Als de programmeur beperkt hoe een gebruiker een datum kan invoeren , ze kan dan een patroon - matching programma dat strings kunnen lezen en bepalen of ze data vertegenwoordigen creëren . De Patroon object in Java , samen met reguliere expressies , kunnen passende data eenvoudig en duidelijk te maken . Datum Functie Om een functie die datum formaten controleert beginnen , moet de programmeur nagaan welke formaten te accepteren . In deze discussie , de programmeur accepteert data met koppeltekens ( " 00-00-0000 " ) en punten ( " 00.00.0000 " ) . De uitdaging is dus om patronen passen voor data in beide formaten . Import java.util.ArrayList ; ; import java.util.regex.Pattern : Ten eerste zal de programmeur een klasse die een " IsDate " -methode , waarbij een tekenreeks die een datum aanvaardt bevat construeren public class DateFinder { public static boolean IsDate ( String datum ) { } } Expressies Reguliere reguliere expressies zijn tekenreeksen die kunnen worden gebruikt om patronen in de tekst aan te passen. Het patroon " beschrijft een zoekterm , " en maakt een reguliere expressie patroon matcher om regels tekst zoeken naar voorkomens van patronen . De IsDate functie zal gebruiken reguliere expressie snaren om de juiste datum formaten bepalen . In het volgende voorbeeld wordt de IsDate functie uitgerust met drie stringvariabelen vertegenwoordigen reguliere expressie patronen die overeenkomen met juiste dag , maand en jaar formaten : String dag = " ( ( [ 12 ] \\ \\ d ) | ( 3 [ 01 ] ) | ( 0 [ 1-9 ] ? ) ) " ; String maand = " ( ( 1 [ 012 ] ) | ( 0 \\ \\ d ) ) " ; String jaar = " \\ \\ d { 4 } " ; Patroon Creation , datumnotaties om de reguliere expressie variabelen gebruiken , de programmeur maakt gebruik van de " Pattern " Java-object . Dit object zal een reguliere expressie string en " compile " het te nemen , waardoor het klaar voor gebruik in bijpassende patronen in tekenreeksen . In dit voorbeeld wordt slechts twee formaten worden toegestaan ( ' date - maand-jaar "of " Dag.Maand.Jaar " ) , maar anderen kan worden gedefinieerd door de programmeur : Patroon date_formats = new Pattern . compileren ( dag + " [ - . ] " + maand + " [ - . ] " + jaar ) ) ; Match Datum Patronen Zodra de programmeur de reguliere expressie om de datum overeenkomen heeft samengesteld , alles wat ze hoeft te doen is overeenkomen met het patroon op de aangeboden date . Met behulp van de " wedstrijden " methode van het patroon object , kan de programmeur een boolean waarde terug op de vraag of een datum overeenkomt met de indeling gegeven : date = " 22-12-1980 " ; Matcher m = date_format . wedstrijden ( datum ) ; return m.matches ( ) ;//geeft true
|