Hur använder man en switch-sats med reguljära uttryck i Java?

Jan 16, 2026

Lämna ett meddelande

Yo! Jag är en switch-leverantör och idag ska jag prata om hur man använder en switch-sats med reguljära uttryck i Java. Det kanske låter lite tekniskt, men oroa dig inte, jag ska dela upp det åt dig.

Först och främst, vad är en switch-sats i Java? Tja, det är en kontrollstruktur som låter dig välja ett av många kodblock att köra baserat på värdet på ett uttryck. Till exempel kan du använda en switch-sats för att hantera olika fall baserat på veckodag.

int dag = 3; switch (dag) { fall 1: System.out.println("måndag"); bryta; fall 2: System.out.println("Tisdag"); bryta; fall 3: System.out.println("onsdag"); bryta; // och så vidare... default: System.out.println("Ogiltig dag"); }

Men vad händer om vi vill använda reguljära uttryck i en switch-sats? Reguljära uttryck är mönster som används för att matcha teckenkombinationer i strängar. De är super användbara när du behöver hantera olika typer av textinmatning.

I Java, före Java 14, var det inte enkelt att använda reguljära uttryck direkt i en switch-sats. Men från och med Java 14 fick vi några coola nya funktioner som switch-uttryck och mönstermatchning, som gör den här uppgiften mycket enklare.

Låt oss säga att vi har en sträng som representerar olika typer av switchnamn och att vi vill utföra olika åtgärder baserat på namnets mönster. Så här kan vi göra det:

importera java.util.regex.Pattern; public class SwitchRegexExample { public static void main(String[] args) { String switchName = "6GK5008 - 0BA10 - 1AB2 Electrical Switch Scalance XB008"; // Vi kommer att definiera några regexmönster 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("Matchade ett mönster liknande 6GK..."); // Du kan inkludera fler åtgärder här System.out.println("Kolla in den här relaterade switchen: [6GK5008-0BA10-1AB2 Electrical Switch Scalance XB008](/industrial-electronic-parts/switch/6gk5008-0ba10-1ab2-electrical)-switch.html"); bryta; default: System.out.println("Ingen matchning"); } } else if (pattern2.matcher(switchName).find()) { switch (switchName) { case var name when pattern2.matcher(name).matches(): System.out.println("Matchade ett mönster liknande D4A..."); System.out.println("Här är en relevant switch: [D4A - 4501N D4A - 4510N Limit Switch](/industrial-electronic-parts/switch/d4a-4501n-d4a-4510n-limit-switch.html)"); bryta; default: System.out.println("Ingen matchning"); } } else if (pattern3.matcher(switchName).find()) { switch (switchName) { case var name when pattern3.matcher(name).matches(): System.out.println("Matchade ett mönster liknande 514120..."); System.out.println("Ta en titt på detta ställdon: [514120 Ställdon](/industrial-electronic-parts/switch/514120-actuator.html)"); bryta; default: System.out.println("Ingen matchning"); } } } }

I den här koden definierar vi först tre reguljära uttrycksmönster. Sedan kontrollerar vi omswitchNamesträngen matchar varje mönster. Om det gör det använder vi en switch-sats för att hantera matchningsfallet. Inuti det matchande fodralet skriver vi ut ett meddelande och ger en länk till en relevant produkt.

Låt oss nu dela upp koden lite mer. DePattern.compile()metod används för att skapa enMönsterobjekt från en reguljärt uttryckssträng. DeMatcherklass används sedan för att utföra den faktiska matchningen mot en given inmatningssträng. Detändstickor()metoden kontrollerar om hela inmatningssträngen matchar mönstret, medanhitta()metod kontrollerar om någon del av inmatningssträngen matchar mönstret.

Decase var-namn när ...syntax är en ny funktion i Java 14 och senare. Det tillåter oss att använda ett mönstermatchningsvillkor i ett växelhus. Detta gör det lättare att skriva ren och läsbar kod när man hanterar komplexa förhållanden.

Att använda reguljära uttryck i en switch-sats kan vara väldigt praktiskt i scenarier där du har ett stort antal möjliga indatavärden och du vill gruppera dem baserat på vissa mönster. Till exempel, i ett system som hanterar olika typer av elektriska strömbrytare, kan du ha namn som följer specifika namnkonventioner. Genom att använda reguljära uttryck kan du enkelt kategorisera och hantera dessa växlar baserat på deras namn.

Om du är på marknaden för switchar eller relaterade produkter vet du att vi har ett brett utbud att erbjuda. Oavsett om du letar efter6GK5008-0BA10-1AB2 Elektrisk brytare skalans XB008, denD4A - 4501N D4A - 4510N Gränslägesbrytare, eller514120 Ställdon, vi är här för att hjälpa dig. Om du är intresserad av att göra ett köp eller bara vill ha en pratstund om dina krav, tveka inte att höra av dig. Vi är alltid redo att ha en bra diskussion och hjälpa dig att hitta rätt produkter för dina behov.

Referenser

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

  • Java dokumentation
  • Självstudier för reguljära uttryck

Skicka förfrågan