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'라는 또 다른 함수는 행렬에서 수직으로 검색 문자열을 확인합니다. 행렬의 열에서 문자열을 검색하기 위해 행렬을 전치하고 다시 검색합니다.