【问题标题】:How to get a random value from a string array in android?如何从android中的字符串数组中获取随机值?
【发布时间】:2012-07-20 22:46:53
【问题描述】:

在我的 values.xml 文件中,我有一个数组,像这样;

<string-array name="animals-array">
    <item>Cow</item>
    <item>Pig</item>
    <item>Bird</item>
    <item>Sheep</item>
</string-array>

在我的应用程序中,我想随机获取这些值之一,但我不确定如何执行此操作。我看过了

Help in getting String Array from arrays.xml file

还有这个

Retrieving a random item from ArrayList

但是如何从 values.xml 文件中定义的列表中检索随机项?

【问题讨论】:

    标签: java android random arrays


    【解决方案1】:
    String[] array = context.getResources().getStringArray(R.array.animals_array);
    String randomStr = array[new Random().nextInt(array.length)];
    

    希望这会有所帮助。

    【讨论】:

    • @Egor:不应该String randomStr = array[new Random().nextInt(array.length)];String randomStr = array[new Random().nextInt(array.length - 1)]; 以避免ArrayIndexOutOfBoundsException
    • @OsamaMohammedShaikh,查看文档:docs.oracle.com/javase/7/docs/api/java/util/…
    • 好的,它不包括指定的值,即 n 值。我检查了 Android 文档,但不是很清楚,所以有疑问。好吧,感谢您消除疑问。
    • 我想要随机字符串但不想repeat...请您帮忙...?谢谢...!
    【解决方案2】:

    1. 从 xml 中检索完整的字符串数组并将其放入 ArrayList 中 Arrays.asList() 方法。

    2. 使用Math.random()*mArr.size() 函数获取随机数。 (mArr 是 ArrayList)

    3.然后用这个随机数从ArrayList中得到一个动物就好了

       `myArr.get(myrand);`
    

    4.我建议使用 ArrayList(即 Collection 框架)的原因是因为它会给您更多的灵活性

    【讨论】:

    • 这也有效,接受了另一个答案,因为它是第一个
    【解决方案3】:
    String[] myArrayOfStrings = {"one", "two", "three" } 
    Random r = new Random();
    String myRandString = r.nextInt(myArrayOfStrings.length );
    

    【讨论】:

      猜你喜欢
      • 2021-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      • 2020-07-04
      • 2012-06-09
      • 2019-04-01
      • 2013-08-13
      相关资源
      最近更新 更多