Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เมธอด split() ของ Pattern ใน Java พร้อมตัวอย่าง

คลาส 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