如何使用java显示给定字符串的组合?

如何使用java显示给定字符串的组合?,java,Java,如何使用java显示给定字符串的组合 比如说,, 输入:abc 输出: import java.util.HashSet; 导入java.util.Iterator; 导入java.util.Scanner; 公共类组合{ 公共静态void main(字符串[]args){ 扫描仪sc=新的扫描仪(System.in); 字符串str=sc.next(); char[]ch=str.toCharArray(); 焦炭温度; HashSet al=新的HashSet(); 对于(int i=0;i

如何使用java显示给定字符串的组合

比如说,, 输入:
abc
输出:

import java.util.HashSet;
导入java.util.Iterator;
导入java.util.Scanner;
公共类组合{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
字符串str=sc.next();
char[]ch=str.toCharArray();
焦炭温度;
HashSet al=新的HashSet();
对于(int i=0;i
这是我的代码。还有其他优化方法吗???
cab
abc
cba
bac
acb
import java.util.HashSet;
import java.util.Iterator;
import java.util.Scanner;

public class Combinations {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String str = sc.next();
    char[] ch = str.toCharArray();
    char temp ;
    HashSet<String> al=new HashSet<String>();  
    for (int i = 0;i < str.length();i++) {
      for (int j = 0;j < str.length();j++) {
        temp = ch[i];
        ch[i] = ch[j];
        ch[j] = temp;
        al.add(String.valueOf(ch));
        temp = ' ';
      }
    }
    Iterator<String> itr=al.iterator();  
    while(itr.hasNext()){  
     System.out.println(itr.next());  
    }  
  }
}