V tomto příspěvku se budeme zabývat různými způsoby kontroly, zda řetězec obsahuje alfanumerické znaky v Javě. Jinými slovy, zjistit, zda se řetězec skládá pouze z čísel a abecedy. Nulový řetězec by měl vrátit false a prázdný řetězec true.

Java pro tuto jednoduchou úlohu neposkytla žádnou standardní funkci. Nicméně v Javě existuje několik metod, jak zjistit, zda je zadaný String alfanumerický –

Regulární výraz

Jde o použití regulárního výrazu ^*$, který kontroluje řetězec na přítomnost alfanumerických znaků. To lze provést pomocí metody matches() třídy String, která řekne, zda tento řetězec odpovídá zadanému regulárnímu výrazu, či nikoliv.

Stáhnout spuštěný kód

Výstup:
IsAlphaNumeric: true

Pokud je regulární výraz volán často, možná budete chtít regulární výraz zkompilovat pro zvýšení výkonu:

Download Run Code

Output:
IsAlphaNumeric: true

Lambda výrazy

Od Javy 8 to lze efektivně provést pomocí lambda výrazů:

Download Run Code

Output:
IsAlphaNumeric: true

Použití externích knihoven

Můžeme použít knihovnu Apache Commons Lang, která má metodu isAlphanumeric() obsaženou ve třídě StringUtils.

Naivní

V prosté Javě můžeme iterovat po znacích řetězce a kontrolovat každý znak, zda je alfanumerický, pomocí Character.isLetterOrDigit(char). To je demonstrováno níže:

Stáhnout spuštěný kód

Výstup:
IsAlphaNumeric: true

(6 hlasů, průměr: 5,00 z 5)

Díky za přečtení

.

Articles

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.