如何生成一个随机字符串

时间:2018-04-28 23:37:51

标签: java android random

我使用了EditText小部件,客户端可以输入信息,然后我在ArrayList中保存了几个条目。现在我想从ArrayList中随机选择其中一个条目。如何随机选择ArrayList中的一个元素?

我已经尝试过这些方法,但是当我运行它时会崩溃。

String myrandomString = String.valueOf(rand.nextInt(options.size()));

//int myrandomString = rand.nextInt(options.toString().length());

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您已经有ArrayList<String>包含以前输入的字符串,当用户输入新字符串时,它会附加到此列表中。 您想要做的是从此列表中选择一个随机字符串。 您可以使用java.util.Random类从列表中生成随机索引,并返回位于该索引上的单词。 例如,下面的代码将在每次执行时打印测试列表的随机成员。

Random random = new Random();

List<String> test = Arrays.asList("Text1","Text2","Text3","Text4");
System.out.println(test.get(Math.abs(random.nextInt()) % test.size()));

修改

如评论中所述,将Math.abs(random.nextInt()) % test.size()替换为random.nextInt(test.size())将使代码更具可读性,并减少生成大量重复项的机会(这将使数字分布更均匀)。< / p>

答案 1 :(得分:0)

首先在arrayList大小中选择一个随机索引:

int randIdx = new Random().nextInt(arrayList.size());

然后在该索引处获取String

String randString = arrayList.get(randIdx);