ในการค้นหาสตริงในเมทริกซ์โดยใช้ฟังก์ชัน split โค้ดจะเป็นดังนี้ -
ตัวอย่าง
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
หากสตริงที่เรากำลังมองหาอยู่ระหว่างอักขระของสตริง ความยาวของ thearray จะมากกว่า 1 ความยาวของอาร์เรย์อาจเป็น 1 หาก:
- สตริงการค้นหาเกิดขึ้นในครึ่งแรกของอาร์เรย์
- สตริงการค้นหาเกิดขึ้นในครึ่งหลังของอาร์เรย์
- ไม่มีสตริงการค้นหาในอาร์เรย์
ฟังก์ชันอื่นที่ชื่อว่า 'vertical_search' จะตรวจสอบสตริงการค้นหาในแนวตั้งในเมทริกซ์ ในการค้นหาสตริงในคอลัมน์ของเมทริกซ์ เมทริกซ์จะถูกย้ายและค้นหาอีกครั้ง