String#split()
เพียงแค่ใช้วิธีการที่เหมาะสม:
String string = "004-034556";
String[] parts = string.split("-");
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556
โปรดทราบว่าการดำเนินการนี้เป็นนิพจน์ปกติดังนั้นโปรดหลีกเลี่ยงอักขระพิเศษหากจำเป็น
มีอักขระ 12 ตัวที่มีความหมายพิเศษคือเครื่องหมายแบ็กสแลชเครื่องหมาย\
รูปหมวกเครื่องหมาย^
ดอลลาร์$
จุดหรือจุด.
แถบแนวตั้งหรือสัญลักษณ์ท่อแนวตั้ง|
เครื่องหมายคำถามเครื่องหมาย?
ดอกจันหรือดาว*
เครื่องหมายบวกเครื่องหมาย+
วงเล็บเปิดวงเล็บวงเล็บ(
ปิด)
และวงเล็บเหลี่ยม[
เปิด{
, วงเล็บปีกกาเปิด, อักขระพิเศษเหล่านี้มักจะเรียกว่า "metacharacters"
ดังนั้นหากคุณต้องการแยกเช่นจุด / จุด.
ซึ่งหมายถึง " อักขระใด ๆ " ใน regex ให้ใช้เครื่องหมายแบ็กสแลช\
เพื่อหลีกเลี่ยงอักขระพิเศษแต่ละตัวเช่นนั้นsplit("\\.")
หรือใช้คลาสอักขระ[]
เพื่อแทนอักขระตามตัวอักษรsplit("[.]")
หรือใช้Pattern#quote()
เพื่อ split(Pattern.quote("."))
หลบหนีสตริงทั้งหมดเช่นดังนั้น
String[] parts = string.split(Pattern.quote(".")); // Split on period.
ในการทดสอบก่อนถ้าสตริงมีอักขระบาง (s) String#contains()
เพียงแค่การใช้งาน
if (string.contains("-")) {
// Split it.
} else {
throw new IllegalArgumentException("String " + string + " does not contain -");
}
หมายเหตุนี่ไม่ได้ใช้การแสดงออกปกติ เพื่อที่จะใช้String#matches()
แทน
หากคุณต้องการที่จะรักษาตัวอักษรแยกในส่วนที่เกิดขึ้นแล้วทำให้การใช้LookAround บวก ในกรณีที่คุณต้องการแยกตัวอักษรให้จบที่ด้านซ้ายมือให้ใช้ lookbehind เชิงบวกโดยการใส่คำนำหน้า?<=
กลุ่มลงบนลวดลาย
String string = "004-034556";
String[] parts = string.split("(?<=-)");
String part1 = parts[0]; // 004-
String part2 = parts[1]; // 034556
ในกรณีที่คุณต้องการให้ตัวอักขระแยกส่วนจบลงทางด้านขวามือให้ใช้ lookahead ที่เป็นบวกโดยนำหน้า?=
กลุ่มบนลวดลาย
String string = "004-034556";
String[] parts = string.split("(?=-)");
String part1 = parts[0]; // 004
String part2 = parts[1]; // -034556
หากคุณต้องการ จำกัด จำนวนชิ้นส่วนที่เกิดขึ้นคุณสามารถระบุจำนวนที่ต้องการเป็นอาร์กิวเมนต์ที่ 2 ของsplit()
วิธีการ
String string = "004-034556-42";
String[] parts = string.split("-", 2);
String part1 = parts[0]; // 004
String part2 = parts[1]; // 034556-42