วิธีการใช้คำสั่ง switch ร่วมกับนิพจน์ปกติในภาษา Java ทำอย่างไร?

Jan 16, 2026

ฝากข้อความ

โย่! ฉันเป็นซัพพลายเออร์สวิตช์ และวันนี้ฉันจะพูดถึงวิธีใช้คำสั่ง switch กับนิพจน์ทั่วไปใน Java อาจจะฟังดูยุ่งยากนิดหน่อย แต่ไม่ต้องกังวล ฉันจะแจกแจงรายละเอียดให้คุณ

ก่อนอื่นเลย switch คำสั่งใน Java คืออะไร? มันเป็นโครงสร้างการควบคุมที่ช่วยให้คุณสามารถเลือกหนึ่งในบล็อคโค้ดจำนวนมากเพื่อดำเนินการตามค่าของนิพจน์ ตัวอย่างเช่น คุณอาจใช้คำสั่ง switch เพื่อจัดการกรณีต่างๆ ตามวันในสัปดาห์

วันภายใน = 3; สวิตช์ (วัน) { กรณีที่ 1: System.out.println ("วันจันทร์"); หยุดพัก; กรณีที่ 2: System.out.println("วันอังคาร"); หยุดพัก; กรณีที่ 3: System.out.println("วันพุธ"); หยุดพัก; // และอื่นๆ... ค่าเริ่มต้น: System.out.println("Invalid day"); }

แต่ถ้าเราต้องการใช้นิพจน์ทั่วไปในคำสั่ง switch ล่ะ? นิพจน์ทั่วไปคือรูปแบบที่ใช้ในการจับคู่ชุดอักขระในสตริง มันมีประโยชน์มากเมื่อคุณต้องการจัดการกับการป้อนข้อความประเภทต่างๆ

ใน Java ก่อน Java 14 การใช้นิพจน์ทั่วไปโดยตรงในคำสั่ง switch นั้นไม่ได้ตรงไปตรงมา แต่เริ่มจาก Java 14 เป็นต้นไป เรามีคุณสมบัติใหม่เจ๋งๆ เช่น นิพจน์สวิตช์ และการจับคู่รูปแบบ ซึ่งทำให้งานนี้ง่ายขึ้นมาก

สมมติว่าเรามีสตริงที่แสดงถึงชื่อสวิตช์ประเภทต่างๆ และเราต้องการดำเนินการที่แตกต่างกันตามรูปแบบของชื่อ นี่คือวิธีที่เราสามารถทำได้:

นำเข้า java.util.regex.Pattern; SwitchRegexExample ระดับสาธารณะ { โมฆะคงที่สาธารณะ main (String [] args) { String switchName = "6GK5008 - 0BA10 - 1AB2 Scalance สวิตช์ไฟฟ้า XB008"; // เราจะกำหนดรูปแบบ regex บางส่วน Pattern pattern1 = Pattern.compile("^6GK\\d+-\\w+-\\w+"); รูปแบบ pattern2 = Pattern.compile("^D4A-\\d+N"); รูปแบบ pattern3 = Pattern.compile("^514120"); if (pattern1.matcher(switchName).find()) { switch (switchName) { case var name when pattern1.matcher(name).matches(): System.out.println("จับคู่รูปแบบที่คล้ายกับ 6GK..."); // คุณสามารถรวมการดำเนินการเพิ่มเติมได้ที่นี่ System.out.println("ตรวจสอบสวิตช์ที่เกี่ยวข้องนี้: [6GK5008-0BA10-1AB2 Electrical Switch Scalance XB008](/industrial-electronic-parts/switch/6gk5008-0ba10-1ab2-electrical-switch.html)"); หยุดพัก; ค่าเริ่มต้น: System.out.println("ไม่ตรงกัน"); } } else if (pattern2.matcher(switchName).find()) { switch (switchName) { case var name when pattern2.matcher(name).matches(): System.out.println("จับคู่รูปแบบที่คล้ายกับ D4A..."); System.out.println("นี่คือสวิตช์ที่เกี่ยวข้อง: [D4A - 4501N D4A - 4510N Limit Switch](/industrial-electronic-parts/switch/d4a-4501n-d4a-4510n-limit-switch.html)"); หยุดพัก; ค่าเริ่มต้น: System.out.println("ไม่ตรงกัน"); } } else if (pattern3.matcher(switchName).find()) { switch (switchName) { case var name when pattern3.matcher(name).matches(): System.out.println("จับคู่รูปแบบที่คล้ายกับ 514120..."); System.out.println("ดูที่แอคชูเอเตอร์นี้: [514120 Actuator](/industrial-electronic-parts/switch/514120-actuator.html)"); หยุดพัก; ค่าเริ่มต้น: System.out.println("ไม่ตรงกัน"); } } } }

ในโค้ดนี้ ก่อนอื่นเราจะกำหนดรูปแบบนิพจน์ทั่วไปสามรูปแบบ จากนั้นเราตรวจสอบว่าชื่อสวิตช์สตริงตรงกับแต่ละรูปแบบ หากเป็นเช่นนั้น เราจะใช้คำสั่ง switch เพื่อจัดการกับตัวพิมพ์ที่ตรงกัน ภายในเคสที่ตรงกัน เราจะพิมพ์ข้อความและระบุลิงก์ไปยังผลิตภัณฑ์ที่เกี่ยวข้อง

เอาล่ะ เรามาแจกแจงโค้ดกันอีกสักหน่อย ที่Pattern.คอมไพล์()วิธีการที่ใช้ในการสร้างลวดลายวัตถุจากสตริงนิพจน์ทั่วไป ที่ไม้ขีดคลาสนั้นถูกใช้เพื่อทำการจับคู่จริงกับสตริงอินพุตที่กำหนด ที่การแข่งขัน()วิธีการตรวจสอบว่าสตริงอินพุตทั้งหมดตรงกับรูปแบบหรือไม่ ในขณะที่หา()วิธีการตรวจสอบว่าส่วนใดส่วนหนึ่งของสตริงอินพุตตรงกับรูปแบบหรือไม่

ที่case var ชื่อเมื่อ ...ไวยากรณ์เป็นคุณสมบัติใหม่ใน Java 14 และใหม่กว่า ช่วยให้เราใช้เงื่อนไขการจับคู่รูปแบบภายในเคสสวิตช์ ทำให้ง่ายต่อการเขียนโค้ดที่ชัดเจนและอ่านง่ายเมื่อต้องรับมือกับเงื่อนไขที่ซับซ้อน

การใช้นิพจน์ทั่วไปในคำสั่ง switch อาจมีประโยชน์มากในสถานการณ์ที่คุณมีค่าอินพุตที่เป็นไปได้จำนวนมาก และคุณต้องการจัดกลุ่มตามรูปแบบบางอย่าง ตัวอย่างเช่น ในระบบที่จัดการสวิตช์ไฟฟ้าประเภทต่างๆ คุณอาจมีชื่อที่เป็นไปตามรูปแบบการตั้งชื่อเฉพาะ ด้วยการใช้นิพจน์ทั่วไป คุณสามารถจัดหมวดหมู่และจัดการสวิตช์เหล่านี้ตามชื่อได้อย่างง่ายดาย

หากคุณอยู่ในตลาดสวิตช์หรือผลิตภัณฑ์ที่เกี่ยวข้อง คุณจะรู้ว่าเรามีสินค้าให้เลือกมากมาย ไม่ว่าคุณกำลังมองหา6GK5008-0BA10-1AB2 สเกลสวิตช์ไฟฟ้า XB008, ที่D4A - 4501N D4A - 4510N ลิมิตสวิตช์หรือ514120 ตัวกระตุ้นเราพร้อมให้ความช่วยเหลือคุณ หากคุณสนใจที่จะซื้อสินค้าหรือเพียงต้องการพูดคุยเกี่ยวกับความต้องการของคุณ อย่าลังเลที่จะติดต่อเรา เราพร้อมเสมอที่จะมีการสนทนาที่ดีและช่วยคุณค้นหาผลิตภัณฑ์ที่เหมาะกับความต้องการของคุณ

อ้างอิง

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

  • เอกสารจาวา
  • บทช่วยสอนนิพจน์ทั่วไป

ส่งคำถาม