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

Chương trình thay thế tất cả các ký tự trong tệp bằng '#' ngoại trừ một từ cụ thể trong Java

split () phương thức của lớp String. chia chuỗi hiện tại xung quanh các kết quả phù hợp của biểu thức chính quy đã cho. Mảng được trả về bởi phương thức này chứa mỗi chuỗi con của chuỗi này được kết thúc bởi một chuỗi con khác khớp với biểu thức đã cho hoặc được kết thúc bởi cuối chuỗi.

ReplaceAll () phương thức của lớp String chấp nhận hai chuỗi đại diện cho một biểu thức chính quy và một Chuỗi thay thế và thay thế các giá trị phù hợp bằng Chuỗi đã cho.

Để thay thế tất cả các ký tự trong tệp bằng '#' ngoại trừ một từ cụ thể (một cách) -

  • Đọc nội dung của tệp thành một chuỗi.

  • Tạo một đối tượng StringBuffer trống.

  • Tách chuỗi thu được int o mảng Chuỗi bằng cách sử dụng split () phương pháp.

  • Duyệt qua mảng thu được.

  • Nếu bất kỳ phần tử nào trong nó khớp với từ bắt buộc, hãy nối nó vào bộ đệm Chuỗi.

  • Thay thế các ký tự trong tất cả các từ còn lại bằng ‘#’ và nối chúng vào đối tượng StringBuffer.

  • Cuối cùng chuyển đổi StingBuffer thành String.

Ví dụ

Giả sử chúng ta có một tệp có tên là sample.txt với các nội dung sau -

Hello how are you welcome to Tutorialspoint we provide hundreds of technical tutorials for free.

Chương trình sau đọc nội dung của tệp thành một chuỗi thay thế tất cả các ký tự trong đó bằng '#' ngoại trừ một từ cụ thể.

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Scanner;
public class ReplaceExcept {
   public static String fileToString() throws FileNotFoundException {
      String filePath = "D://input.txt";
      Scanner sc = new Scanner(new File(filePath));
      StringBuffer sb = new StringBuffer();
      String input;
      while (sc.hasNextLine()) {
         input = sc.nextLine();
         sb.append(input);
      }
      return sb.toString();
   }
   public static void main(String args[]) throws FileNotFoundException {
      String contents = fileToString();
      System.out.println("Contents of the file: \n"+contents);
      //Splitting the words
      String strArray[] = contents.split(" ");
      System.out.println(Arrays.toString(strArray));
      StringBuffer buffer = new StringBuffer();
      String word = "Tutorialspoint";
      for(int i = 0; i < strArray.length; i++) {
         if(strArray[i].equals(word)) {
            buffer.append(strArray[i]+" ");
         } else {
            buffer.append(strArray[i].replaceAll(".", "#"));
         }
      }
      String result = buffer.toString();
      System.out.println(result);
   }
}

Đầu ra

Contents of the file:
Hello how are you welcome to Tutorialspoint we provide hundreds of technical tutorials for free.
[Hello, how, are, you, welcome, to, Tutorialspoint, we, provide, hundreds, of, technical, tutorials, for, free.]
#######################Tutorialspoint ############################################