স্প্লিট ফাংশন ব্যবহার করে ম্যাট্রিক্সে স্ট্রিং খোঁজার কোড নিচে দেওয়া হলো:
উদাহরণ
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' নামক একটি ফাংশন সংজ্ঞায়িত করা হয়েছে যা স্ট্রিং স্প্লিট করে এবং স্ট্রিং-এর দৈর্ঘ্য চেক করে। যদি পুরো রো স্ট্রিং দ্বারা আক্রমণ করা হয়, তবে ফাংশনটি দৈর্ঘ্য ০ বিশিষ্ট অ্যারে রিটার্ন করে।
যদি আমরা যে স্ট্রিং খুঁজছি সেটি স্ট্রিং-এর ক্যারেক্টারগুলোর মাঝপথে থাকে, তবে অ্যারে-এর দৈর্ঘ্য ১-এর চেয়ে বড় হবে। অ্যারে-এর দৈর্ঘ্য ১ হতে পারে যদি:
- সার্চ স্ট্রিং অ্যারে-এর প্রথম আধার অংশে থাকে।
- সার্চ স্ট্রিং অ্যারে-এর শেষ আধার অংশে থাকে।
- সার্চ স্ট্রিং অ্যারেতে থাকে না।
'vertical_search' নামক আরেকটি ফাংশন ম্যাট্রিক্সে সার্চ স্ট্রিং লম্বভাবে খোঁজা করে। ম্যাট্রিক্সের কলামগুলোতে স্ট্রিং খোঁজার জন্য ম্যাট্রিক্সটিকে ট্রান্সপোজ করা হয় এবং আবার সার্চ করা হয়।