In this post, we will write a Java program to find all permutations of String.
This program provides an easy recursive solution. let's write a program to print all permutations of a String in Java, for example, if the input is "xyz" then it should print "xyz", "yzx", "zxy", "xzy", "yxz", "zyx".
Java Program to Find all Permutations of String
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Java Program to Find all Permutations of String
* @author javaguides.net
*
*/
public class StringPermutationsProgram {
public List<String> permutations(String inputStr) {
if (inputStr == null)
return null;
final List<String> result = new ArrayList<>();
if (inputStr.length() < 2) {
result.add(inputStr);
return result;
}
final List<String> permutations = permutations(inputStr.substring(1));
for (final String permutation : permutations) {
for (int i = 0; i <= permutation.length(); i++) {
String newPermutation = permutation.substring(0, i)
+ inputStr.charAt(0) + permutation.substring(i);
result.add(newPermutation);
}
}
return result;
}
public static void main(String[] args) {
StringPermutationsProgram permuter = new StringPermutationsProgram();
List<String> perms = permuter.permutations("xyz");
System.out.println(Arrays.toString(perms.toArray()));
List<String> perms1 = permuter.permutations("abca");
System.out.println(Arrays.toString(perms1.toArray()));
}
}
Output:
[xyz, yxz, yzx, xzy, zxy, zyx]
[abca, baca, bcaa, bcaa, acba, caba, cbaa, cbaa, acab, caab, caab, caba, abac, baac, baac, baca, aabc,
aabc, abac, abca, aacb, aacb, acab, acba]
Related Java String Programs with Output
- Java Program to Find the First Non-repeated Character in a String
- Java Program to Check Palindrome String
- Java Program to Find Duplicate Characters in a String
- Java Program to Find Duplicate Words in a String
- Java Program to Find All the Permutations of a String
- Java Program to Count Occurrences of Words in a String
- Java Program to Count the Occurrences of Each Character
- Java Program to Count Vowels and Consonants in a String
- Java program to Count the Number of Duplicate Words in a String
- Java Program to Count Number of Words in Given String
- Java Program to Count the Number of Occurrences of Substring in a String
- Java Program to Count the Occurrences of Each Character in String
- Java Program to Merge Two String Arrays
- Java Program to Remove Duplicate Words from String
- Java Program to Reverse a String(5 ways)
- Java Program to Reverse Each Word of a String
- Java Program to Swap Two Strings
- How to Check if the String Contains Only Digits
- How to Check if the String Contains Only Letters
- How to Check If the String Contains Only Letters or Digits
- Java Program to Swap Two Strings Without Using Third Variable
Comments
Post a Comment
Leave Comment