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

Di chuyển tất cả các ký tự đặc biệt đến cuối chuỗi bằng cách sử dụng Java Regular Expression RegEx)

Biểu thức chính quy sau đây khớp với tất cả các ký tự đặc biệt, tức là tất cả các ký tự ngoại trừ khoảng trắng và chữ số trong bảng chữ cái tiếng Anh.

"[^a-zA-Z0-9\\s+]"

Để di chuyển tất cả các ký tự đặc biệt đến cuối dòng đã cho, hãy so khớp tất cả các ký tự đặc biệt bằng cách sử dụng regex này, nối chúng với một chuỗi trống và cuối cùng nối các ký tự còn lại với một chuỗi khác, nối hai chuỗi này.

Ví dụ 1

public class RemovingSpecialCharacters {
   public static void main(String args[]) {
      String input = "sample # text * with & special@ characters";
      String regex = "[^a-zA-Z0-9\\s+]";
      String specialChars = "";
      String inputData = "";
      for(int i=0; i< input.length(); i++) {
         char ch = input.charAt(i);
         if(String.valueOf(ch).matches(regex)) {
            specialChars = specialChars + ch;
         } else {
            inputData = inputData + ch;
         }
      }
      System.out.println("Result: "+inputData+specialChars);
   }
}

Đầu ra

Result: sample text with special characters#*&@

Ví dụ 2

Sau đây là chương trình Java di chuyển các ký tự đặc biệt của một chuỗi đến cuối bằng các phương thức của gói Regex.

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
   public static void main(String args[]) {
      String input = "sample # text * with & special@ characters";
      String regex = "[^a-zA-Z0-9\\s+]";
      String specialChars = "";
      System.out.println("Input string: \n"+input);
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Matching the compiled pattern in the String
      Matcher matcher = pattern.matcher(input);
      //Creating an empty string buffer
      StringBuffer sb = new StringBuffer();
      while (matcher.find()) {
         specialChars = specialChars+matcher.group();
         matcher.appendReplacement(sb, "");
      }
      matcher.appendTail(sb);
      System.out.println("Result: \n"+ sb.toString()+specialChars );
   }
}

Đầu ra

Input string:
sample # text * with & special@ characters
Result:
sample text with special characters#*&@