字符全排列java实现(转)
来源:互联网 发布:dnf决战人工智能6.2 编辑:程序博客网 时间:2024/05/29 05:52
public class Test1 {
public static String[] arr = { "1", "2", "3", "4", "5" };
public static StringBuffer aTotalString = new StringBuffer();// 总共的字符串
public static StringBuffer aTemp = new StringBuffer();// 当前串值
public static void main(String[] args) {
listString(arr.length + 1);
System.out.println("aTotalString=" + aTotalString);
}
/**
* 2.编程:用java语言实现一组数据的所有组合项.
*
* @param num
*/
public static void listString(int num) {
if (num == 1) {
for (int i = 0; i < arr.length; i++) {
aTemp.append(arr[i] + ";");
}
return;
} else {
listString(num - 1);
aTotalString.append(aTemp);
String[] tempArray = aTemp.toString().split(";");
aTemp.setLength(0);
for (int i = 0; i < tempArray.length; i++) {
for (int j = 0; j < arr.length; j++) {
if (check(tempArray[i], arr[j])) {
aTemp.append(tempArray[i] + arr[j] + ";");
}
}
}
}
}
/**
* 验证是否是重复的字段,例:13,3则是false, 13,4 则是true;
*
* @param value
* @param letter
* @return
*/
public static boolean check(String value, String letter) {
for (int i = 0; i < value.length(); i++) {
if (value.substring(i, i + 1).equals(letter)) {
return false;
}
}
return true;
}
public static String[] arr = { "1", "2", "3", "4", "5" };
public static StringBuffer aTotalString = new StringBuffer();// 总共的字符串
public static StringBuffer aTemp = new StringBuffer();// 当前串值
public static void main(String[] args) {
listString(arr.length + 1);
System.out.println("aTotalString=" + aTotalString);
}
/**
* 2.编程:用java语言实现一组数据的所有组合项.
*
* @param num
*/
public static void listString(int num) {
if (num == 1) {
for (int i = 0; i < arr.length; i++) {
aTemp.append(arr[i] + ";");
}
return;
} else {
listString(num - 1);
aTotalString.append(aTemp);
String[] tempArray = aTemp.toString().split(";");
aTemp.setLength(0);
for (int i = 0; i < tempArray.length; i++) {
for (int j = 0; j < arr.length; j++) {
if (check(tempArray[i], arr[j])) {
aTemp.append(tempArray[i] + arr[j] + ";");
}
}
}
}
}
/**
* 验证是否是重复的字段,例:13,3则是false, 13,4 则是true;
*
* @param value
* @param letter
* @return
*/
public static boolean check(String value, String letter) {
for (int i = 0; i < value.length(); i++) {
if (value.substring(i, i + 1).equals(letter)) {
return false;
}
}
return true;
}
}
转自:http://virture.iteye.com/blog/384026
- 字符全排列java实现(转)
- Java实现字符数组全排列
- (java)实现全排列
- 【Java】字符数组全排列
- java实现全排列
- java实现全排列
- java全排列实现
- Java实现全排列
- Java实现全排列
- java实现全排列
- java实现全排列
- Java实现全排列
- 全排列java实现
- java实现全排列
- java实现全排列
- java实现全排列
- Java实现全排列
- Java实现-全排列
- AR技术在魔术上的应用II
- VS2010,error C2011: “Font”:“struct”类型重定义
- Google protobuf的安装及使用
- linux内核struct链表程序与分析
- 生日相同
- 字符全排列java实现(转)
- Git 命令参数及用法详解 & Linux编程环境下版本控制 Git使用
- How To Choose The Best XML Parser for Your iPhone Project
- Windows 64bit 驱动 和 应用开发 笔记
- VC中的DoDataExchange
- PTIAN EBS FORM开发(二)
- Struts2 Action与Servlet API耦合
- 创业公司感悟录之十个提醒
- iPhone Tutorials