Java排列组合字符串的方法
程序员文章站
2023-11-27 11:26:52
例如 输入“abc”,打印所有可能出现的组合情况,并且消除重复值。
所谓排列组合如下:
排列组合,字符串:abc
bca
acb
abc
cba
bac
c...
例如 输入“abc”,打印所有可能出现的组合情况,并且消除重复值。
所谓排列组合如下:
排列组合,字符串:abc
bca
acb
abc
cba
bac
cab
排列组合个数:6
实现代码(结合java8 lambda表达式实现)
import org.junit.test; import java.util.arraylist; import java.util.hashset; import java.util.list; public class test2 { @test public void test3() { string input="abc"; //1.开始排列 list<string> sortresult = sort(input); system.out.println("排列组合,字符串:"+input); //2.消除重复列 hashset h = new hashset(sortresult); sortresult.clear(); sortresult.addall(h); //3.打印输出 sortresult.foreach(e -> system.out.println(e)); //4.打印个数 system.out.println("排列组合个数:" + sortresult.size()); } private list<string> sort(string input) { list<string> sortlist = new arraylist(); if (input == null || "".equals(input)) { system.out.println("提示:您输入了空字符,请输入有效值!"); return new arraylist(); } char leftchar = input.charat(0); if (input.length() > 1) { string rightstring = input.substring(1, input.length()); list<string> rightstringsortedlist = sort(rightstring); rightstringsortedlist.foreach((e) -> { for (int i = 0; i < e.length() + 1; i++) { sortlist.add(new stringbuffer(e).insert(i, leftchar).tostring()); } }); } else { sortlist.add(string.valueof(leftchar)); } return sortlist; } }
如有更简洁的代码实现,请不要吝啬,贴出来分享下。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 爱剪辑视频怎么裁剪合并?