Java程序打印字符串的不同排列

要打印字符串的不同排列,Java程序如下所示:

示例

import java.util.ArrayList;

public class Demo{

   static boolean is_present(String my_str, ArrayList<String> rem){

      for (String str : rem){

         if (str.equals(my_str))

         return true;

      }

      return false;

   }

   static ArrayList<String> distinct_pattern(String str){

      if (str.length() == 0){

         ArrayList<String> base_Val = new ArrayList<>();

         base_Val.add("");

         return base_Val;

      }

      char ch = str.charAt(0);

      String rem_str = str.substring(1);

      ArrayList<String> prev_str = distinct_pattern(rem_str);

      ArrayList<String> rem = new ArrayList<>();

      for (String my_str : prev_str){

         for (int i = 0; i <= my_str.length(); i++){

            String f = my_str.substring(0, i) + ch + my_str.substring(i);

            if (!is_present(f, rem))

            rem.add(f);

         }

      }

      return rem;

   }

   public static void main(String[] args){

      String my_str = "mnqm";

      System.out.println("字符串的不同排列是");

      System.out.println(distinct_pattern(my_str));

   }

}

输出结果

字符串的不同排列是

[mnqm, nmqm, nqmm, mqnm, qmnm, qnmm, mqmn, qmmn, mnmq, nmmq, mmnq, mmqn]

名为Demo的类包含一个名为'is_present'的布尔函数,该函数检查字符串是否实际存在。根据字符串是否包含某些字符,它返回true或false。另一个名为“ distinct_pattern”的函数创建一个数组列表。

定义了另一个字符串,名为“ rem_str”,用于存储字符串的子字符串。通过传递“ rem_str”来调用此“ distinct_function”。这样,在生成另一个不同的排列之前,将对字符串进行迭代,并检查每个字符的位置。这样,避免了所有重复项。最后,所有唯一的排列都显示在控制台上。main函数定义了字符串,并在该字符串上调用了函数'distinct_pattern'。相关输出将显示在控制台上。

以上是 Java程序打印字符串的不同排列 的全部内容, 来源链接: utcz.com/z/322597.html

回到顶部