为什么我转换的字符串会继续追加

Car*_*nda -1 java string stringbuilder loops

我正在尝试创建一个随机生成的字符串.问题是,按照我设置的方式,它继续添加到自身.

我的代码(我从另一个类调用了很多静态变量,所以不要担心那部分)

    class Generate1 extends Thread{
    @Override
    public void run() {
        while(RUNNING == true){
                generate();
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
    private void generate(){
        for(int i=0;i<length;i++){
            int decider = rando.nextInt(6)+1;

            if(decider == 1){
                sb1.append("A");
            }
            if(decider == 2){
                sb1.append("B");
            }
            if(decider == 3){
                sb1.append("C");
            }
            if(decider == 4){
                sb1.append("D");
            }
            if(decider == 5){
                sb1.append("E");
            }
            if(decider == 6){
                sb1.append("F");
            }
        }
        Log.d("PSS",sb1.toString()); // this here is the stringbuilder being outputted 
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我将长度设置为2,在我的日志中它看起来像:

DF DFCA DFCAEF

而不是我想要的输出:

DF CA EF

我该如何解决?(我知道这可能是一个愚蠢的问题,但它已经很晚了,通过代码思考会伤害我的眼睛和大脑)

编辑 - shmosel为错误带来了光明.这是一个非常简单的修复我忽略的东西

shm*_*sel 6

StringBuilder为每次调用使用相同的实例generate().改为使用新的:

private void generate(){
    StringBuilder sb1 = new StringBuilder(length);
    // ...
}
Run Code Online (Sandbox Code Playgroud)