Validering av Strängar i Java
Svep för att visa menyn
När man arbetar med textinmatning ger användare sällan exakt det du förväntar dig — vissa lämnar fält tomma, vissa skriver bara mellanslag, vissa glömmer obligatoriska symboler. Därför behöver vi ofta validera en sträng innan vi använder den i ett program — kontrollera om den följer vissa regler.
Vi har redan sett grundläggande verktyg som isEmpty(), length() och contains(), men nu lägger vi till några fler som är särskilt användbara i verkliga valideringsscenarier.
isBlank()
Ett mycket vanligt problem är när en sträng inte är tekniskt tom, men ändå bara innehåller mellanslag. Till exempel kan en användare "skriva" ett namn men bara trycka på mellanslagstangenten några gånger. .isBlank() hanterar detta genom att behandla strängar som endast innehåller blanksteg som ogiltig inmatning. Den returnerar 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); } }
Även om customerName inte är helt tom, innehåller den endast blanksteg — därför returnerar .isBlank() true, vilket signalerar att det inte finns något meningsfullt innehåll.
startsWith()
Ibland behöver vi säkerställa att en sträng följer en specifik struktur. Till exempel kan varje orderkod i vårt system behöva börja med "ORD". .startsWith() kontrollerar början av strängen och returnerar 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") kontrollerar de första tre tecknen i orderCode — eftersom de stämmer överens returneras true, vilket bekräftar att koden följer det förväntade formatet.
endsWith()
Vi kan också validera slutet av en sträng — särskilt användbart för filnamn eller format. Till exempel för att säkerställa att ett kvitto faktiskt är en PDF-fil. Returnerar 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") kontrollerar de sista fyra tecknen i receiptFile — eftersom de matchar ".pdf", returneras true.
Kombinerad validering
Verklig validering består vanligtvis inte av bara en kontroll — det är flera regler som samverkar. Till exempel kan validering av ett användarnamn kräva att det inte är tomt, har minst 5 tecken och inte innehåller några mellanslag:
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); } }
Alla tre villkor kombineras med && — användarnamnet måste uppfylla varje enskild kontroll för att anses vara giltigt. "coffeeMaster" är inte tomt, har fler än 5 tecken och innehåller inga mellanslag, så validUsername är true.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal