menusearch
javapro.ir

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

جستجو
یکشنبه ۳ بهمن ۱۴۰۰ | ۲۳:۵:۴
۱۳۹۶/۷/۳۰ یکشنبه
(3)
(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(char insert (strNew, initial, i));
           }
       }
       return perm;
   }

   public static String char insert (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. print ln("Enter your a String:");
       String str = input.next();
       System.out. print ln("\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 کلیک کنید.

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