package temp;/** * 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符 例如:
原始字符串是"abc",打印得到下列所有组合情况
"a" "b" "c"
"ab" "bc" "ca" "ba" "cb" "ac"
"abc" "acb" "bac" "bca" "cab" "cba" * @author Administrator * */import java.util.LinkedHashSet;import java.util.Set;
public class Demo { public static void main(String[] args) { String input = "abc"; // 求a/b/c三个字符的全排列 Set<String> results = new LinkedHashSet<String>(); results.add(""); for (int i = 0; i < input.length(); i++) { for (int j = 0; j < input.length(); j++) { String current = input.substring(j, j + 1); Set<String> newones = new LinkedHashSet<String>(); for (String s : results) { if (s.indexOf(current) == -1) { s += current; } newones.add(s); } results.addAll(newones); } } results.remove(""); for (String s : results) { System.out.println(s); } System.out.println(results.size()); }}
代码贴上来有点乱弄一张图片,图片和代码内容一样啊~~
你这方法是写死的把?如果换成abcd就不行了把?
您能帮我看看我发的那个方法么?
能用我也能看懂,就是想把那个方法的思想了解一下~~
是不是die的,试试就知道了,我知道你并没有试。
追问抱歉抱歉~~看见有好几层for以为是写死的了……
递归做的~~不好意思啊~~
但是您能帮我讲讲我贴上去的那个代码么?
我是不太懂那个代码的思想啊……
急:用java或者js\/jquery对字符串如:ABC输出它的所有组合
count, array, ind, start, indexs ){start++;if (start > count - 1){return;}if (start == 0){indexs = new Array(array.length);}for
京东商城的笔试题:用java语言打印出a,b,c,d的所有可能组合……求指点...
如果是这样,那代码如下,其中心思想就是递归 import java.util.ArrayList;import java.util.List;public class Permutation { private char initial;private char last;List<Character> chars=new ArrayList<Character>();public static void main(String[] args) { new Permutation('a','d').start()...
排列组合--原理及实现
-->全排列:递归 从集合中依次选出每一个元素,作为排列的第一个元素,然后对剩余的元素进行全排列,如此递归处理 从而得到所有元素的全排列。以对字符串abc进行全排列为例,我们可以这么做:以abc为例:固定a,求后面bc的排列:abc,acb,求好后,a和b交换,得到bac 固定b,求后面ac的排列:bac,...
java 列出一个字符串的全字符组合情况,不考虑重复字符
public static void main ( String[] args ){getSub ();for ( char[] cs : list ){System.out.println (Arrays.toString (cs));}}private static LinkedList<char[]> getSub (){while (count <= len){recursionSub (0, -1);
java 如果我输入小写abc 怎么把它变成大小写的组合但位置不变
import java.util.Scanner;public class StringToUper { \/\/ 得到一个数组中不同的组合形式--从min个到max个 \/\/ 虽然本例没有使用,但在其他应用中还是可以用到的 public ArrayList<Object[]> getZhFromAry(Object[] ary, int max, int min)throws Exception { int len = ary.length;if (max ...
java算法问题 排列组合 给定一组字符串,产生所有可能的集合
import java.util.List;public class Combinations { \/ 设有n个元素,组合数量有2的n次方种。对 0 到 2的n次方-1 中的每个数,考察其二进制位形式,位数为1代表相应元素加入 到组合,0则不加入该元素至组合。取组合方法 参数: list --- 原始数组 返回: 包含所有组合数组的数组 \/ public st...
JAVA 一个字符串"xxxxabcabc" 如何去掉字符串前四个xxxx是四个不固定...
处的字符串 例:String str=“xxxxabcdefg”;要去掉前面四个的话。就是要获得该字符串索引为4-最后的这段字符。String result=str.substring(4);\/\/不写结束索引既表示从起始索引开始到该字符串最后全部截取获得。string result =str.substring(4,str.length());str.length()是获得字符串的长度 ...
为什么java中输出字符数组名得到的是数组的内容
首先你可以参考这个帖子 网页链接 字符类型的数组名确实是地址,只不过是在println函数中有一个重载方法,这个重载方法根据地址找到了所有字符并返回给了这个方法,所以你看到了你例子中异常的地方。
...参数abc 以实现将字符串a中的所有b替换成c(String.replaceAll函数不可...
你看下是不是你需要的,希望采纳!public class StringTest { \/ <一句话功能简述> <功能详细描述> param args see [类、类#方法、类#成员]\/ public static void main(String[] args) { \/\/ TODO Auto-generated method stub String a = "aabbccbb";String b = "bb";String c = "eeee";...
Java编程:将字符串12345abc转换成ABC12345输出
使用正则分别提取英文和数字,英文再转大写、再组合起来 补答,优化一下楼上的 \/\/原回答每个字符都调用toUpperCase String str = "12345abc".toUpperCase();StringBuilder newLetter = new StringBuilder();StringBuilder newNumber = new StringBuilder();for(int i=0; i<str.length(); i++){ c...