通过java中的递归来查找字符串的正确子集

时间:2014-02-12 17:04:37

标签: java recursion

char d;
String e="",i1="",d1="";
public static void main(String args[])throws IOException
{
    String str="";
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Enter the string");
    str=br.readLine();
    int l,i=0;
    l=str.length();
    char k;
    String f="";
    Vivek obj=new Vivek();
    while(i<l)
    {
        k=str.charAt(i);
        f=Character.toString(k);
        System.out.println(k);
        obj.recursive(str,f,i+1,l);
        i++;
    }
}
public void recursive(String s,String c,int i,int l)
{
    for(int j=i;j<l;j++)
    {
        d=s.charAt(j);
        d1=Character.toString(d);
        System.out.println(c+d1);
    }
    //System.out.println();
    i1=Character.toString(s.charAt(i)); 
    e=c+i1;
    //System.out.pritnln(e);
    recursive(s,e,i+1,l);
}

程序的输出是输入字符串abcd

  • AB

  • AC

  • 广告

  • ABC

  • ABD

  • ABCD

然后打印出错误

  

StringIndexOutOfBounds

...你能告诉我如何做对吗

1 个答案:

答案 0 :(得分:2)

你的递归函数中没有任何中断条件,因此它会像永远一样运行 - 不完全理解你的代码,我会提出类似以下内容作为recursive的第一行:{{1} }。