คลาส Pattern ในแพ็กเกจ java.util.regex เป็นการแสดงรูปแบบที่คอมไพล์แล้วของนิพจน์ปกติ (Regular Expression)
เมธอด split() ของคลาสนี้รับออบเจ็กต์ CharSequence ที่เป็นสตริงอินพุตเป็นพารามิเตอร์ และที่แต่ละจุดที่ตรงกัน จะแบ่งสตริงที่กำหนดให้เป็นโทเค็นใหม่ และส่งคืนอาร์เรย์สตริงที่เก็บโทเค็นทั้งหมด
ตัวอย่างที่ 1
import java.util.regex.Pattern;
public class SplitMethodExample {
public static void main( String args[] ) {
// นิพจน์ปกติเพื่อค้นหาตัวเลข
String regex = "(\\s)(\\d)(\\s)";
String input = " 1 Name:Radha, age:25 2 Name:Ramu, age:32 3 Name:Rajev, age:45";
// คอมไพล์นิพจน์ปกติ
Pattern pattern = Pattern.compile(regex);
// ตรวจสอบว่ามีการจับคู่หรือไม่
if(pattern.matcher(input).find())
System.out.println("Given String contains digits");
else
System.out.println("Given String does not contain digits");
// แบ่งสตริง
String strArray[] = pattern.split(input);
for(int i=0; i<strArray.length; i++){
System.out.println(strArray[i]);
}
}
}ผลลัพธ์
Given String contains digits Name:Radha, age:25 Name:Ramu, age:32 Name:Rajev, age:45
เมธอดนี้ยังรับค่าจำนวนเต็มที่แทนจำนวนครั้งที่นำรูปแบบไปใช้งานได้ นั่นคือ คุณสามารถกำหนดความยาวของอาร์เรย์ผลลัพธ์โดยระบุค่า limit
ตัวอย่างที่ 2 (ใช้ limit)
import java.util.regex.Pattern;
public class SplitMethodExample {
public static void main( String args[] ) {
String regex = "(\\s)(\\d)(\\s)";
String input = " 1 Name:Radha, age:25 2 Name:Ramu, age:32" +
" 3 Name:Rajeev, age:45 4 Name:Raghu, age:35" +
" 5 Name:Rahman, age:30";
Pattern pattern = Pattern.compile(regex);
if(pattern.matcher(input).find())
System.out.println("Given String contains digits");
else
System.out.println("Given String does not contain digits");
// แบ่งสตริงด้วย limit = 4
String strArray[] = pattern.split(input, 4);
for(int i=0; i<strArray.length; i++){
System.out.println(strArray[i]);
}
}
}ผลลัพธ์
Given String contains digits Name:Radha, age:25 Name:Ramu, age:32 Name:Rajeev, age:45 4 Name:Raghu, age:35 5 Name:Rahman, age:30