Validating Strings in Java
Stryg for at vise menuen
Når man arbejder med tekstinput, giver brugerne sjældent præcis det, du forventer — nogle efterlader felter tomme, nogle indtaster kun mellemrum, nogle glemmer påkrævede symboler. Derfor skal vi ofte validere en streng, før vi bruger den i et program — altså kontrollere, om den følger bestemte regler.
Vi har allerede set grundlæggende værktøjer som isEmpty(), length() og contains(), men nu tilføjer vi et par flere, som er særligt nyttige i reelle valideringssituationer.
isBlank()
Et meget almindeligt problem er, når en streng ikke teknisk set er tom, men kun indeholder mellemrum. For eksempel kan en bruger "indtaste" et navn, men kun trykke på mellemrumstasten et par gange. .isBlank() håndterer dette ved at betragte strenge, der kun består af blanktegn, som ugyldigt input. Den returnerer en boolean.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String customerName = " "; boolean isBlankName = customerName.isBlank(); System.out.println(isBlankName); } }
Selvom customerName ikke er helt tom, indeholder den kun mellemrum — derfor returnerer .isBlank() true, hvilket indikerer, at der ikke er noget meningsfuldt indhold.
startsWith()
Nogle gange skal vi sikre, at en streng følger en bestemt struktur. For eksempel kan det være et krav, at hver ordrekode i vores system starter med "ORD". .startsWith() kontrollerer begyndelsen af strengen og returnerer en boolean.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String orderCode = "ORD-2459"; boolean validOrderCode = orderCode.startsWith("ORD"); System.out.println(validOrderCode); } }
.startsWith("ORD") kontrollerer de første tre tegn i orderCode — da de matcher, returnerer den true, hvilket bekræfter, at koden følger det forventede format.
endsWith()
Det er også muligt at validere slutningen af en streng — især nyttigt for filnavne eller formater. For eksempel at sikre, at en kvitteringsfil faktisk er en PDF. Den returnerer en boolean.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String receiptFile = "receipt.pdf"; boolean validReceiptFile = receiptFile.endsWith(".pdf"); System.out.println(validReceiptFile); } }
.endsWith(".pdf") kontrollerer de sidste fire tegn i receiptFile — da de matcher ".pdf", returnerer den true.
Kombineret validering
Reel validering består som regel ikke kun af én kontrol — det er flere regler, der arbejder sammen. For eksempel kan validering af et brugernavn kræve, at det ikke er tomt, har mindst 5 tegn og ikke indeholder mellemrum:
Main.java
123456789101112131415package com.example; public class Main { public static void main(String[] args) { String username = "coffeeMaster"; boolean validUsername = !username.isBlank() && username.length() >= 5 && !username.contains(" "); System.out.println(validUsername); } }
Alle tre betingelser kombineres med && — brugernavnet skal opfylde hver enkelt kontrol for at blive betragtet som gyldigt. "coffeeMaster" er ikke tom, har mere end 5 tegn og indeholder ingen mellemrum, så validUsername er true.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Validating Strings in Java
Når man arbejder med tekstinput, giver brugerne sjældent præcis det, du forventer — nogle efterlader felter tomme, nogle indtaster kun mellemrum, nogle glemmer påkrævede symboler. Derfor skal vi ofte validere en streng, før vi bruger den i et program — altså kontrollere, om den følger bestemte regler.
Vi har allerede set grundlæggende værktøjer som isEmpty(), length() og contains(), men nu tilføjer vi et par flere, som er særligt nyttige i reelle valideringssituationer.
isBlank()
Et meget almindeligt problem er, når en streng ikke teknisk set er tom, men kun indeholder mellemrum. For eksempel kan en bruger "indtaste" et navn, men kun trykke på mellemrumstasten et par gange. .isBlank() håndterer dette ved at betragte strenge, der kun består af blanktegn, som ugyldigt input. Den returnerer en boolean.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String customerName = " "; boolean isBlankName = customerName.isBlank(); System.out.println(isBlankName); } }
Selvom customerName ikke er helt tom, indeholder den kun mellemrum — derfor returnerer .isBlank() true, hvilket indikerer, at der ikke er noget meningsfuldt indhold.
startsWith()
Nogle gange skal vi sikre, at en streng følger en bestemt struktur. For eksempel kan det være et krav, at hver ordrekode i vores system starter med "ORD". .startsWith() kontrollerer begyndelsen af strengen og returnerer en boolean.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String orderCode = "ORD-2459"; boolean validOrderCode = orderCode.startsWith("ORD"); System.out.println(validOrderCode); } }
.startsWith("ORD") kontrollerer de første tre tegn i orderCode — da de matcher, returnerer den true, hvilket bekræfter, at koden følger det forventede format.
endsWith()
Det er også muligt at validere slutningen af en streng — især nyttigt for filnavne eller formater. For eksempel at sikre, at en kvitteringsfil faktisk er en PDF. Den returnerer en boolean.
Main.java
123456789101112package com.example; public class Main { public static void main(String[] args) { String receiptFile = "receipt.pdf"; boolean validReceiptFile = receiptFile.endsWith(".pdf"); System.out.println(validReceiptFile); } }
.endsWith(".pdf") kontrollerer de sidste fire tegn i receiptFile — da de matcher ".pdf", returnerer den true.
Kombineret validering
Reel validering består som regel ikke kun af én kontrol — det er flere regler, der arbejder sammen. For eksempel kan validering af et brugernavn kræve, at det ikke er tomt, har mindst 5 tegn og ikke indeholder mellemrum:
Main.java
123456789101112131415package com.example; public class Main { public static void main(String[] args) { String username = "coffeeMaster"; boolean validUsername = !username.isBlank() && username.length() >= 5 && !username.contains(" "); System.out.println(validUsername); } }
Alle tre betingelser kombineres med && — brugernavnet skal opfylde hver enkelt kontrol for at blive betragtet som gyldigt. "coffeeMaster" er ikke tom, har mere end 5 tegn og indeholder ingen mellemrum, så validUsername er true.
Tak for dine kommentarer!