menusearch
javapro.ir

به دست آوردن همه جایگشت های یک String در جاوا

جستجو
دوشنبه ۵ خرداد ۱۳۹۹ | ۲۳:۱۰:۸
۱۳۹۶/۷/۳۰ یکشنبه
(2)
(0)
به دست آوردن همه جایگشت های یک String در جاوا
به دست آوردن همه جایگشت های یک String در جاوا
مسئله: برنامه ای به زبان جاوا بنویسید که همه جایگشت های کاراکترهای یک رشته(String) در جاوا را به دست آورد.


پاسخ:
 
import  java.util.ArrayList;
import  java.util.Scanner;



 // Java Program to find all permutations of a String

 
public class StringPermutation {
    public static ArrayList<String> permutationFinder(String str) {
        ArrayList<String> perm = new ArrayList<String>();
         Handling error scenarios
        if (str == null) {
            return null;
        } else if (str.length() == 0) {
            perm.add("");
            return perm;
        }
        char initial = str.charAt(0); first character
        String rem = str.substring(1); Full string without first character
        ArrayList<String> words = permutationFinder(rem);
        for (String strNew : words) {
            for (int i = 0; i <= strNew.length(); i++) {
                perm.add(charinsert(strNew, initial, i));
            }
        }
        return perm;
    }

    public static String charinsert(String str, char c, int j) {
        String begin = str.substring(0, j);
        String end = str.substring(j);
        return begin + c + end;
    }

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        System.out.println("Enter your a String:");
        String str = input.next();
        System.out.println("\nPermutations for " + str + " are: \n"
                + permutationFinder(str));
    }
}
 

خروجی(output):یک نمونه تست شده برنامه به صورت زیر است.
 
 
Enter your a String:
abc

Permutations for abc are:
[abc, bac, bca, acb, cab, cba]
 

در برنامه بالا اگر ما رشته "abc" را به عنوان ورودی بدهیم ،برنامه جایگشت کاراکترهای این رشته  را به صورت زیر تولید می کند:
abc, bac, bca, acb, cab, cba
 

جهت دانلود سورس کد مثال بالا روی StringPermutation.java  کلیک کنید.

کانال تلگرام آموزش جاوا 
 
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.