Java程序计算列表字符串中所有数组的组合
在此示例中,您将学习计算Java中字符串的所有数组组合。
要理解此示例,必须了解以下Java编程主题:
字符串排列是指通过交换字符串字符的位置可能形成的所有新字符串。 例如,字符串ABC具有的数组组合[ABC、ACB、BAC、BCA、CAB、CBA]。
示例: Java程序获取字符串的所有数组组合
importjava.util.HashSet示例;
importjava.util.Scanner;
importjava.util.Set;
classMain{
公共统计设置参数(stringstr )。
//创建set集合以避免重复数组
Setpermutations=newHashSet (;
//检查字符串是否为空
if(str==null ) {
返回空值;
}elseif(str.length ) (==0) ) )。
//递归的结束条件
permutations.add (' );
返回参数;
}
//获得第一个字符
Charfirst=str.Charat(0;
//获取剩下的子字符串
stringsub=str.substring(1;
递归调用getPersertion (
设置words=get permutation (sub;
遍历words
for(stringstrnew:words )
for(inti=0; i=strNew.length (; I ) {
//将数组插入set集合中
permutations.add (strnew.substring (0,I ) first strNew.substring(i ) I );
}
}
返回参数;
}
publicstaticvoidmain (字符串[ ] args ) {
创建scanner类的对象
扫描输入=new扫描程序(system.in );
//接受用户输入
System.out.print (输入字符串: );
Stringdata=input.nextLine (;
system.out.println (数据'的序列组合为: (n ' get permutation (数据) );
}
}
输出结果输入字符串:ABC
ABC的序列组合是:
[ACB、BCA、ABC、CBA、BAC、CAB]
Java使用递归计算了字符串的所有数组组合。 在此,将数组存储在set集合中。 因此,没有重复的数组组合。