Java编写程序:实现ABCDE的所有全排列并将所有结果一个个分行写入外部文件中
时间: 2024-11-25 10:19:00 浏览: 12
NLengthKLength:从给定的长度为K的字符串中生成所有N个长度的字符串
在Java中,我们可以使用递归的方式来生成并打印出字符串"ABCDEF"的所有全排列。这里是一个简单的示例代码,它将每个排列写入一个文本文件:
```java
import java.io.FileWriter;
import java.io.IOException;
public class Permutations {
private static final String[] chars = {"A", "B", "C", "D", "E", "F"};
public static void main(String[] args) throws IOException {
generatePermutations("", chars, new FileWriter("permutations.txt"));
}
private static void generatePermutations(String prefix, String[] remainingChars, FileWriter writer) throws IOException {
if (remainingChars.length == 0) {
writer.append(prefix).append('\n');
return;
}
for (int i = 0; i < remainingChars.length; i++) {
generatePermutations(prefix + remainingChars[i],
removeElement(remainingChars, i),
writer);
}
}
private static String[] removeElement(String[] array, int index) {
String[] newArray = new String[array.length - 1];
System.arraycopy(array, 0, newArray, 0, index);
System.arraycopy(array, index + 1, newArray, index, array.length - index - 1);
return newArray;
}
}
```
这个程序首先创建一个空字符串`prefix`作为当前的排列,并使用剩余的字符数组`remainingChars`。在`generatePermutations`函数里,我们检查是否还有剩余字符,如果没有,就将当前排列写入文件;如果有,我们将第一个字符添加到前缀并递归地处理剩下的字符。
运行此程序后,会生成一个名为`permutations.txt`的文件,包含"ABCDEF"的所有全排列,每行一个。
阅读全文