menusearch
javapro.ir
جستجو
۱۳۹۶/۷/۳۰ یکشنبه
(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  کلیک کنید.

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