Để tìm chuỗi trong ma trận dùng hàm split, mã như sau:
Ví dụ
import java.util.*; public class Demo { public static int search_string(String[] my_matrix, String search_string){ for (String input : my_matrix){ String[] my_value = input.split(search_string); if (my_value.length >= 2 || my_value.length == 0){ return 1; } else if (my_value.length == 1 && input.length() != my_value[0].length()){ return 1; } } return 0; } public static String[] vertical_search(String[] my_matrix){ String[] vertical_search_value = new String[my_matrix[0].length()]; for (int i = 0; i < my_matrix[0].length(); i++){ String temp = ""; for (int j = 0; j < my_matrix.length; j++) temp += my_matrix[j].charAt(i); vertical_search_value[i] = temp; } return vertical_search_value; } public static void main(String[] args){ String[] my_matrix = { "This", "Sample", "This" }; String search_string = "This"; String[] vertical_matrix = vertical_search(my_matrix); int horizontal_search_result = search_string(my_matrix, search_string); int vertical_search_result = search_string(vertical_matrix, search_string); if (horizontal_search_result == 1 || vertical_search_result == 1) System.out.println("The string has been found in the matrix"); else System.out.println("The string couldn't be found in the matrix"); } }
Kết quả
The string has been found in the matrix
Lớp Demo định nghĩa hàm search_String tách chuỗi và kiểm tra độ dài. Nếu toàn bộ hàng bị chiếm bởi chuỗi, hàm trả về mảng độ dài 0.
Nếu chuỗi tìm kiếm nằm giữa các ký tự, độ dài mảng lớn hơn 1. Độ dài mảng có thể là 1 nếu:
- Chuỗi tìm kiếm xuất hiện ở nửa đầu mảng.
- Chuỗi tìm kiếm xuất hiện ở nửa cuối mảng.
- Chuỗi tìm kiếm không có trong mảng.
Hàm vertical_search kiểm tra chuỗi tìm kiếm theo chiều dọc trong ma trận. Để tìm trong cột, ma trận được chuyển vị và tìm lại.