如何检查字符串只生成一次

Wal*_*lid -2 java string random

我有这种方法可以生成随机问题,我希望能够生成一次并且不超过一次的每个问题.我怎么能这样做?

这是到目前为止的代码:

package boss;
import java.util.Random;
import javax.swing.JFrame;


public class Boss {
    public static void main(String[] args) {

        LoginWindow window = new LoginWindow();
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setVisible(true);
    }

    public String getQuestions() {
        String [] question = new String[30];
        question[0] = "hello";
        question[1] ="yo";
        question[2] ="b";
        question[3] ="ha";

        //Generating random questions
        Random r = new Random();
        int i=r.nextInt(4);
        String quest=question[i];
        return quest;
    }
}
Run Code Online (Sandbox Code Playgroud)

mar*_*ton 5

您没有在示例中生成问题 - 您从存储在数组中的固定集中选择它们.听起来你只是想要对数组进行洗牌,然后迭代它的一部分直到你看到所需数量的问题.所以 - 建议你改变问题,然后迭代乱序数组,或者对一组索引0..n进行混洗,并迭代原始问题列表中的那些.

有很多改组的方法,也许最简单的是对输入数据进行单次传递,将每个元素与其他随机选择的元素进行交换.

  • "shuffle()"的+1,插图[这里](http://stackoverflow.com/a/2524394/230513). (3认同)