java 字符串排列组合_Java 程序计算列出字符串的所有排列组合
Java 程序計算列出字符串的所有排列組合
在此示例中,我們將學習計算Java中字符串的所有排列組合。
要理解此示例,您應該了解以下Java編程主題:
字符串的排列是指可以通過互換字符串字符的位置來形成的所有可能的新字符串。例如,字符串ABC具有的排列組合 [ABC,ACB,BAC,BCA,CAB,CBA]。
示例:Java 程序獲取字符串的所有排列組合
示例import?java.util.HashSet;
import?java.util.Scanner;
import?java.util.Set;
class?Main?{
public?static?Set?getPermutation(String?str)?{
//創建?set?集合以避免重復排列
Set?permutations?=?new?HashSet();
//檢查字符串是否為空
if?(str?==?null)?{
return?null;
}?else?if?(str.length()?==?0)?{
//遞歸的終止條件
permutations.add("");
return?permutations;
}
//得到第一個字符
char?first?=?str.charAt(0);
//獲取剩余的子字符串
String?sub?=?str.substring(1);
//遞歸調用getPersertion()
Set?words?=?getPermutation(sub);
//遍歷?words
for?(String?strNew?:?words)?{
for?(int?i?=?0;i<=strNew.length();i++){
//將排列插入到set集合中
permutations.add(strNew.substring(0,?i)?+?first?+?strNew.substring(i));
}
}
return?permutations;
}
public?static?void?main(String[]?args)?{
//創建scanner類的對象
Scanner?input?=?new?Scanner(System.in);
//?接受用戶的輸入
System.out.print("輸入字符串:?");
String?data?=?input.nextLine();
System.out.println(data?+?"??的排列組合有:?\n"?+?getPermutation(data));
}
}
輸出結果輸入字符串:?ABC
ABC?的排列組合有:
[ACB,?BCA,?ABC,?CBA,?BAC,?CAB]
在Java中,我們使用了遞歸來計算字符串的所有排列組合。在這里,我們將排列存儲在set集合中。因此,不會有重復的排列組合。
總結
以上是生活随笔為你收集整理的java 字符串排列组合_Java 程序计算列出字符串的所有排列组合的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java定义final_Java中何时将
- 下一篇: java 数据类型 存储_Java数据类