split 함수를 사용하여 Matrix에서 문자열을 검색하는 코드는 다음과 같습니다. -
예시
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"); } }
출력
The string has been found in the matrix
Demo라는 클래스는 문자열을 분할하고 문자열의 길이를 확인하는 'search_String'이라는 함수를 정의합니다. 전체 행이 문자열에 의해 점유되면 함수는 길이가 0인 배열을 반환합니다.
찾고 있는 문자열이 문자열의 문자 사이에 있으면 배열의 길이는 1보다 커집니다. 다음과 같은 경우 배열의 길이는 1이 될 수 있습니다.
- 검색 문자열은 배열의 전반부에 나타납니다.
- 검색 문자열은 배열의 마지막 절반에서 발생합니다.
- 검색 문자열이 배열에 없습니다.
'vertical_search'라는 또 다른 함수는 행렬에서 수직으로 검색 문자열을 확인합니다. 행렬의 열에서 문자열을 검색하기 위해 행렬을 전치하고 다시 검색합니다.