如何使用Java从属性文件中选择一组随机值?

时间:2014-04-04 09:00:29

标签: java

我在test.properties目录中有一个名为C:\Test\的属性文件。

在属性文件中,我有属性ID 属性值,如下所示:

TestID=Test1,Test2,Test3,Tes4 upto 10

通过使用Java代码,我如何从属性文件中选择任意5个随机值,然后需要验证 FE 中可用的那些值。

我是 Java 的初学者,请帮我提供一些示例代码

3 个答案:

答案 0 :(得分:0)

这应该改组数组的所有元素

String[] expectedDropDownItemsInArray = new String[] { "a", "b", "c", "d", "e", "f", "g" };
  Random r = new Random();
  for (int i = expectedDropDownItemsInArray.length - 1; i > 0; i--) {
     int index = r.nextInt(i + 1);
     String temp = expectedDropDownItemsInArray[i];
     expectedDropDownItemsInArray[i] = expectedDropDownItemsInArray[index];
     expectedDropDownItemsInArray[index] = temp;
  }
  System.out.println(expectedDropDownItemsInArray);

然后像往常一样

ArrayList<String> expectedDropDownItems = new ArrayList<String>();
for(int i=0; i<expectedDropDownItemsInArray.length; i++)
    expectedDropDownItems.add(expectedDropDownItemsInArray[i]);

答案 1 :(得分:0)

如果您的文件中没有太多属性,请按以下方式执行:

// Define your file here !
private static final File PROPERTIES_FILE = null;

public static void main(String[] args) throws Exception {
    Properties properties = new Properties();
    properties.load(new FileReader(PROPERTIES_FILE));
    ArrayList<Object> values = new ArrayList<Object>(properties.entrySet());
    while (values.size() > 5) values.remove((int) (Math.random() * values.size()));
}

答案 2 :(得分:0)

您已拥有列表中的所有项目(假设expectedDropDownItemsjava.util.List

您可以从此列表中选择5个随机条目,如下所示:

首先,洗牌清单:

Collections.shuffle(expectedDropDownItems);

现在列表是随机排列的,只需要输入前五个条目并将它们放在一个新列表中:

List<String> randomFive = new ArrayList<String>();
for (int i=0; i<5; i++) {
   if (i < expectedDropDownItems.size() {
       randomFive.add(expectedDropDownItems.get(i));
   }
}