Java: Kiểm tra dữ liệu (Test Harness)
Giải phóng thời gian, khai phóng năng lực
Bài viết này sẽ định nghĩa một lớp dùng để kiểm tra dữ liệu và có thể sử dụng lại được, nó sẽ cho chúng ta một cái nhìn tổng quan về cấu trúc của biểu thức chính quy. Ứng dụng chạy lặp đi lặp lại việc yêu cầu người dùng nhập vào một chuỗi cho đến khi nhập đúng theo mẫu mà biểu thức chính quy đã đề ra thì thôi.
package v1study.com; import java.io.Console; import java.util.regex.Pattern; import java.util.regex.Matcher; public class RegexTestHarness { public static void main(String[] args) { Console console = System.console(); if (console == null) { System.err.println("No console."); System.exit(1); } while (true) { Pattern pattern = Pattern.compile(console.readLine("%nNhập vào một biểu thức chính quy: ")); Matcher matcher = pattern.matcher(console.readLine("Nhập vào một chuỗi để tìm kiếm: ")); boolean found = false; while (matcher.find()) { console.format("Tìm thấy " + " \"%s\" bắt đầu tại " + "index %d và kết thúc tại %d.%n", matcher.group(), matcher.start(), matcher.end()); found = true; } if (!found) { console.format("Không tìm thấy, không tương thích.%n"); } } } }
Trước khi tiếp tục chuyển sang bài viết tiếp theo, bạn hãy lưu và chạy đoạn mã trên để đảm bảo rằng môi trường phát triển của bạn hỗ trợ các gói yêu cầu. Trong trường hợp môi trường phát triển của bạn không hỗ trợ Console, bạn có thể thực thi đoạn code sau để thay thế:
package v1study.com; import java.util.Scanner; import java.util.regex.Pattern; import java.util.regex.Matcher; public class RegexTestHarness { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); while (true) { System.out.print("Nhập vào một biểu thức chính quy: "); Pattern pattern = Pattern.compile(scanner.nextLine()); System.out.print("Nhập vào một chuỗi để tìm kiếm: "); Matcher matcher = pattern.matcher(scanner.nextLine()); boolean found = false; while (matcher.find()) { System.out.printf("Tìm thấy " + " \"%s\" bắt đầu tại " + "index %d và kết thúc tại %d.%n", matcher.group(), matcher.start(), matcher.end()); found = true; } if (!found) { System.out.printf("Không tìm thấy, không tương thích.%n"); } } } }
Giải phóng thời gian, khai phóng năng lực