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

Chương trình regex của Java để chia một chuỗi ở mọi khoảng trắng và dấu chấm câu.

Biểu thức chính quy "[! ._, '@? // s]" khớp với tất cả các dấu câu và dấu cách.

Ví dụ

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
   public static void main( String args[] ) {
      String input = "This is!a.sample"text,with punctuation!marks";
      Pattern p = Pattern.compile("[!._,'@?//s]");
      Matcher m = p.matcher(input);
      int count = 0;
      while(m.find()) {
         count++;
      }
      System.out.println("Number of matches: "+count);
   }
}

Đầu ra

Number of matches: 8

split () phương thức của lớp String chấp nhận một giá trị đại diện cho một biểu thức chính quy và chia chuỗi hiện tại thành một mảng mã thông báo (từ), coi chuỗi giữa sự xuất hiện của hai trận đấu là một mã thông báo.

Ví dụ:nếu bạn chuyển một khoảng trắng "" làm dấu phân cách cho phương thức này và cố gắng tách một chuỗi. Phương thức này coi từ nằm giữa hai khoảng trắng là một mã thông báo và trả về một mảng từ (giữa các khoảng trắng) trong Chuỗi hiện tại.

Do đó, để tách một chuỗi ở mọi dấu cách và dấu chấm câu, hãy gọi phương thức split () trên đó bằng cách chuyển biểu thức chính quy được chỉ định ở trên làm tham số.

Ví dụ

import java.util.Scanner;
import java.util.StringTokenizer;
public class RegExample {
   public static void main( String args[] ) {
      String regex = "[!._,'@? ]";
      System.out.println("Enter a string: ");
      Scanner sc = new Scanner(System.in);
      String input = sc.nextLine();
      StringTokenizer str = new StringTokenizer(input,regex);
      while(str.hasMoreTokens()) {
         System.out.println(str.nextToken());
      }
   }
}

Đầu ra

Enter a string:
This is!a.sample text,with punctuation!marks@and_spaces
This
is
a
sample
text
with
punctuation
marks
and
spaces