Computer >> Máy Tính >  >> Lập trình >> Java

Luồng Java matcher có an toàn trong Java không?

Biểu thức chính quy là một chuỗi ký tự đặc biệt giúp bạn so khớp hoặc tìm các chuỗi hoặc tập hợp chuỗi khác, sử dụng cú pháp chuyên biệt được tổ chức trong một mẫu. Chúng có thể được sử dụng để tìm kiếm, chỉnh sửa hoặc thao tác với văn bản và dữ liệu. Java cung cấp gói java.util.regex để đối sánh mẫu với biểu thức chính quy.

Lớp đối sánh

Đối tượng Matcher là công cụ diễn giải mẫu và thực hiện các hoạt động so khớp với một chuỗi đầu vào. Giống như lớp Pattern, Matcher định nghĩa không có hàm tạo công khai nào. Bạn có được một đối tượng Matcher bằng cách gọi matcher () trên một đối tượng Pattern.

Các phiên bản của lớp này không an toàn để sử dụng bởi nhiều chuỗi đồng thời.

Ví dụ

Chương trình Java sau đây chấp nhận 5 chuỗi từ người dùng và in các chuỗi bắt đầu bằng một chữ số.

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StartingwithDigit {
   public static void main( String args[] ) {
      String regex = "^[0-9].*$";
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter 5 input strings: ");
      String input[] = new String[5];
      for (int i=0; i<5; i++) {
         input[i] = sc.nextLine();
      }
      //Creating a Pattern object
      Pattern p = Pattern.compile(regex);
      System.out.println("Strings starting with digits: ");
      for(int i=0; i<5;i++) {
         //Creating a Matcher object
         Matcher m = p.matcher(input[i]);  
         if(m.matches()) {
            System.out.println(m.group());
         }
      }
   }
}

Đầu ra

Enter 5 input strings:
sample string 1
sample string 2
11 sample string 3
22 sample string 4
43534 56353 636
Strings starting with digits:
11 sample string 3
22 sample string 4
43534 56353 636