स्ट्रिंग के सभी क्रमपरिवर्तनों को प्रिंट करने के लिए जावा प्रोग्राम निम्नलिखित है -
उदाहरण
public class Demo{ static void print_permutations(String my_str,String my_ans){ if (my_str.length() == 0){ System.out.print(my_ans + " "); return; } boolean my_arr[] = new boolean[26]; for (int i = 0; i < my_str.length(); i++){ char ch = my_str.charAt(i); String remaining_str = my_str.substring(0, i) + my_str.substring(i + 1); if (my_arr[ch - 'a'] == false) print_permutations(remaining_str, my_ans + ch); my_arr[ch - 'a'] = true; } } public static void main(String[] args){ String my_str = "hey"; System.out.println("The permutation of the string are :"); print_permutations(my_str, ""); } }
आउटपुट
The permutation of the string are : hey hye ehy eyh yhe yeh
डेमो नामक एक वर्ग में एक स्थिर फ़ंक्शन 'प्रिंट_परम्यूटेशन' होता है, जो जांचता है कि कोई स्ट्रिंग खाली है या नहीं, और यदि यह है, तो आउटपुट मुद्रित होता है। अब, 'my_arr' नामक एक बूलियन सरणी को 36 के आकार के साथ असाइन किया गया है, जिसमें 'गलत' मान डिफ़ॉल्ट रूप से संग्रहीत होते हैं। जब भी किसी वर्णमाला का उपयोग किया जाता है, तो सरणी में उसका सूचकांक 'सत्य' में बदल जाता है।
एक 'फॉर' लूप का उपयोग स्ट्रिंग की लंबाई पर पुनरावृति करने के लिए किया जाता है और स्ट्रिंग के ith वर्ण की जाँच की जाती है। ith वर्ण के बिना स्ट्रिंग का शेष भाग 'remaining_str' नामक स्ट्रिंग को असाइन किया गया है। यदि चरित्र का उपयोग नहीं किया जाता है, तो फ़ंक्शन के लिए एक पुनरावर्ती कॉल होती है। अन्यथा, कोई फ़ंक्शन कॉल नहीं होती है। मुख्य फ़ंक्शन में, एक स्ट्रिंग को परिभाषित किया जाता है और इस स्ट्रिंग पर फ़ंक्शन को कॉल किया जाता है।