小编Nex*_*uss的帖子

堆栈溢出的原因是什么?

我正在用Java编写一个Android应用程序函数,该函数使用a StringBuilder来生成字符串的所有排列.

每当运行该函数时,程序立即终止,并且DDMS(Dalvic虚拟机调试工具)在我的函数中声明堆栈溢出.

private void reorder(String reorder_this, StringBuilder in_this){

    for(int i = 0; i < reorder_this.length(); i++)
    {
        if(i == reorder_this.length())
        {
            in_this.append(System.getProperty("line.separator"));
        }
        else
        {
            in_this.append(reorder_this.charAt(i));
            reorder(reorder_this.substring(0, i) + reorder_this.substring(i), in_this);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

你可以看到我已经对这个问题采取了递归方法,我相信这最终会填充字符串生成器,其中包含输入字符串的所有可能排列,每个排列后跟换行字符.

有没有人知道可能导致堆栈溢出的原因?

java stack-overflow recursion android

1
推荐指数
1
解决办法
297
查看次数

标签 统计

android ×1

java ×1

recursion ×1

stack-overflow ×1