Java 有没有办法在程序执行后将输出保存到数组中?
我知道了如何使用递归生成集合的置换,但是我无法知道如何保存它生成的值。有没有办法重新扫描程序输出的数据以便保存?还是我走错方向了 以下是我一直使用的代码:Java 有没有办法在程序执行后将输出保存到数组中?,java,arrays,permutation,Java,Arrays,Permutation,我知道了如何使用递归生成集合的置换,但是我无法知道如何保存它生成的值。有没有办法重新扫描程序输出的数据以便保存?还是我走错方向了 以下是我一直使用的代码: import java.util.Scanner; import java.util.Arrays; public class test { //Arrays.toString(int[]); >>Converts int array to string. //int foo = Integer.parseInt(
import java.util.Scanner;
import java.util.Arrays;
public class test
{
//Arrays.toString(int[]); >>Converts int array to string.
//int foo = Integer.parseInt("1234");
public static void main()
{
String str;
str = getStr();
//
int n = str.length();
//Trying to use this to catch output!!
int nf = 1;
for(int i=n;i>0;i--)
{nf *= i;}
int[][] array = new int[nf][n];
//
char[] arr = str.toCharArray();
boolean[] visited = new boolean[n];
for(int i=0;i<n;i++)
{visited[i] = false;}
char[] branch = new char[n];
generatePermutations(arr,n,branch,-1,visited);
//The visited array keeps track of which nodes have been visited already.
}
public static void generatePermutations(char[] arr,int size,char[] branch,int level,boolean[] visited)
{
if(level >= size-1)
{System.out.println(branch);
return;
}
for(int i=0;i<size;i++)
{
if(!visited[i])
{
branch[++level] = arr[i];
visited[i] = true;
generatePermutations(arr,size,branch,level,visited);
visited[i] = false;
level--;
}
}
}
//
public static String getStr()
{
Scanner kb = new Scanner(System.in);
String str;
int n;
System.out.print("Enter the size (n): ");
n = kb.nextInt();
int[] initialSet = new int[n];
for(int i=0;i<n;i++)
{
initialSet[i] = (i+1);
}
str = Arrays.toString(initialSet).replace(", ", "").replace("[","").replace("]","");
return str;
}
}
import java.util.Scanner;
导入java.util.array;
公开课考试
{
//toString(int[]);>>将int数组转换为字符串。
//intfoo=Integer.parseInt(“1234”);
公共静态void main()
{
字符串str;
str=getStr();
//
int n=str.length();
//正在尝试使用此来捕获输出!!
int-nf=1;
对于(int i=n;i>0;i--)
{nf*=i;}
int[][]数组=新的int[nf][n];
//
char[]arr=str.toCharArray();
boolean[]访问=新的boolean[n];
对于(int i=0;i=size-1)
{System.out.println(分支);
返回;
}
对于(int i=0;i)当您输出数据时,还要将其保存到文件中。您没有正式的main
方法。您有一个名为main
,但它不是main
。看起来您想用将结果存储到数组中的代码替换System.out.println(branch)
。查看。