我正在使用一种功能,我更喜欢使用递归来解决这个问题,我从递归中获取输出,但我的问题是我想从递归的输出列表中获取特定的输出。我不能这样做请帮助我,我正在做我迄今为止所做的事情
public class Test {
public static void main(String[] args) {
String s = "0";
int count =3;
aMethod(s,count);
}
private static void aMethod(String s,int count) {
String t ="";
String finalBinaryString ="";
int iteration =0;
for(int i=0;i<s.length();i++){
char f = s.charAt(i);
int tt = 1- Integer.parseInt(String.valueOf(f));
t += String.valueOf(tt);
}
finalBinaryString = s+t;
if(iteration<count)
aMethod(finalBinaryString,--count);
System.out.println(finalBinaryString);
}
}
我得到的输出是
0110100110010110
01101001
0110
01
我只想要最大的一个。不是其他人。但我无法得到它。请帮助。
答案 0 :(得分:1)
您应该避免将String
设为静态,然后您可以通过这种方式从方法中获得所需的结果(请参阅if (iteration < count)
部分)。
public class Test {
public static void main(final String[] args) {
String s = "0";
int count = 3;
System.out.println(aMethod(s, count));
}
private static String aMethod(final String s, int count) {
String t = "";
int iteration = 0;
for (int i = 0; i < s.length(); i++) {
char f = s.charAt(i);
int tt = 1 - Integer.parseInt(String.valueOf(f));
t += String.valueOf(tt);
}
String finalBinaryString = s + t;
if (iteration < count) {
finalBinaryString = aMethod(finalBinaryString, --count);
}
return finalBinaryString;
}
}
答案 1 :(得分:1)
您可以在递归时返回finalBinaryString。
有例子:
public class Test {
static String finalBinaryString ="";
public static void main(String[] args) {
String s = "0";
int count =3;
System.out.println(aMethod(s,count));
}
private static String aMethod(String s,int count) {
String t ="";
int iteration =0;
for(int i=0;i<s.length();i++){
char f = s.charAt(i);
int tt = 1- Integer.parseInt(String.valueOf(f));
t += String.valueOf(tt);
}
finalBinaryString = s+t;
if(iteration<count)
aMethod(finalBinaryString,--count);
return finalBinaryString;
}
}