Kako koristiti naredbu switch s regularnim izrazima u Javi?

Jan 16, 2026

Ostavite poruku

Joj! Ja sam switch dobavljač i danas ću govoriti o tome kako koristiti switch izjavu s regularnim izrazima u Javi. Možda zvuči malo tehničarski, ali ne brinite, objasnit ću vam.

Prvo, što je naredba switch u Javi? Pa, to je kontrolna struktura koja vam omogućuje da odaberete jedan od mnogih blokova koda za izvršenje na temelju vrijednosti izraza. Na primjer, možete koristiti naredbu switch za obradu različitih slučajeva na temelju dana u tjednu.

int dan = 3; prebaci (dan) { slučaj 1: System.out.println("ponedjeljak"); prekinuti; slučaj 2: System.out.println("Utorak"); prekinuti; slučaj 3: System.out.println("Srijeda"); prekinuti; // i tako dalje... zadano: System.out.println("Nevažeći dan"); }

Ali što ako želimo koristiti regularne izraze u naredbi switch? Regularni izrazi su uzorci koji se koriste za podudaranje kombinacija znakova u nizovima. Izuzetno su korisni kada trebate rukovati različitim vrstama unosa teksta.

U Javi, prije Jave 14, korištenje regularnih izraza izravno u naredbi switch nije bilo jednostavno. Ali počevši od Jave 14, dobili smo neke super nove značajke kao što su izrazi prebacivanja i podudaranje uzoraka, koje ovaj zadatak čine puno lakšim.

Recimo da imamo niz koji predstavlja različite vrste naziva prekidača i želimo izvesti različite akcije na temelju uzorka imena. Evo kako to možemo učiniti:

import java.util.regex.Pattern; public class SwitchRegexExample { public static void main(String[] args) { String switchName = "6GK5008 - 0BA10 - 1AB2 Electrical Switch Scalance XB008"; // Definirat ćemo neke uzorke regularnih izraza Pattern pattern1 = Pattern.compile("^6GK\\d+-\\w+-\\w+"); Pattern pattern2 = Pattern.compile("^D4A-\\d+N"); Pattern pattern3 = Pattern.compile("^514120"); if (pattern1.matcher(switchName).find()) { switch (switchName) { case var name when pattern1.matcher(name).matches(): System.out.println("Uparen uzorak sličan 6GK..."); // Ovdje možete uključiti više radnji System.out.println("Provjerite ovaj povezani prekidač: [6GK5008-0BA10-1AB2 Electrical Switch Scalance XB008](/industrial-electronic-parts/switch/6gk5008-0ba10-1ab2-electrical-switch.html)"); prekinuti; zadano: System.out.println("Nema podudaranja"); } } else if (pattern2.matcher(switchName).find()) { switch (switchName) { case var name when pattern2.matcher(name).matches(): System.out.println("Uparen uzorak sličan D4A..."); System.out.println("Ovdje je relevantan prekidač: [D4A - 4501N D4A - 4510N granični prekidač](/industrial-electronic-parts/switch/d4a-4501n-d4a-4510n-limit-switch.html)"); prekinuti; zadano: System.out.println("Nema podudaranja"); } } else if (pattern3.matcher(switchName).find()) { switch (switchName) { case var name when pattern3.matcher(name).matches(): System.out.println("Uparen uzorak sličan 514120..."); System.out.println("Pogledajte ovaj aktuator: [514120 aktuator](/industrial-electronic-parts/switch/514120-actuator.html)"); prekinuti; zadano: System.out.println("Nema podudaranja"); } } } }

U ovom kodu prvo definiramo tri uzorka regularnih izraza. Zatim provjeravamo je liswitchNameniz odgovara svakom uzorku. Ako postoji, koristimo naredbu switch za obradu podudaranja malih i malih slova. Unutar odgovarajućeg kućišta ispisujemo poruku i dajemo poveznicu do relevantnog proizvoda.

Sada, raščlanimo kod još malo. ThePattern.compile()metoda se koristi za stvaranje aUzorakobjekt iz niza regularnog izraza. TheŠibiceklasa se zatim koristi za izvođenje stvarnog podudaranja s danim ulaznim nizom. Theodgovara()metoda provjerava odgovara li cijeli ulazni niz uzorku, dokpronaći()metoda provjerava odgovara li bilo koji dio ulaznog niza uzorku.

Thecase var name when ...sintaksa je nova značajka u Javi 14 i novijim. Omogućuje nam korištenje uvjeta podudaranja uzorka unutar slučaja prekidača. To olakšava pisanje čistog i čitljivog koda u složenim uvjetima.

Korištenje regularnih izraza u naredbi switch može biti stvarno zgodno u scenarijima u kojima imate velik broj mogućih ulaznih vrijednosti i želite ih grupirati na temelju određenih uzoraka. Na primjer, u sustavu koji upravlja različitim vrstama električnih prekidača, možda imate nazive koji slijede posebne konvencije imenovanja. Korištenjem regularnih izraza možete jednostavno kategorizirati te prekidače i rukovati njima na temelju njihovih naziva.

Ako ste na tržištu za prekidače ili srodne proizvode, znate da imamo širok raspon za ponuditi. Bilo da tražite6GK5008-0BA10-1AB2 Električni prekidač Scalance XB008, theD4A - 4501N D4A - 4510N granični prekidač, odnosno514120 Pokretač, tu smo da vam pomognemo. Ako ste zainteresirani za kupnju ili samo želite porazgovarati o svojim zahtjevima, nemojte se ustručavati kontaktirati. Uvijek smo spremni za dobru raspravu i pomoći vam pronaći prave proizvode za vaše potrebe.

Reference

514120 Actuator For 514120 Safety Switch6GK5008-0BA10-1AB2 Electrical Switch Scalance XB008

  • Java dokumentacija
  • Vodič za regularne izraze

Pošaljite upit