首页 > 解决方案 > 来自字符串的随机数组android

问题描述

我想将我的数组的数字随机分配给键 key0、key1 等。

我正在使用此代码,在前两行中我有我的数组,并使用 setText 分配数字。但我无法让它工作..

            String[] shuffledKeys = {"0","1","2","3","4","5","6","7","8","9"};

        Random random = new Random(); // or create a static random field...
        String randString = shuffledKeys[random.nextInt(shuffledKeys.length)];

        key0.setText(shuffledKeys.get(0));
        key1.setText(shuffledKeys.get(0));
        key2.setText(shuffledKeys.get(0));
        key3.setText(shuffledKeys.get(0));
        key4.setText(shuffledKeys.get(0));
        key5.setText(shuffledKeys.get(0));
        key6.setText(shuffledKeys.get(0));
        key7.setText(shuffledKeys.get(9));
        key8.setText(shuffledKeys.get(8));
        key9.setText(shuffledKeys.get(9));

标签: androidarraysrandomtext

解决方案


String[] keys = {"0","1","2","3","4","5","6","7","8","9"};

Set<String> addedKeys = new HashSet<String>();
List<String> shuffledKeys = new ArrayList<String>();

Random random = new Random();

while (shuffledKeys.size() < keys.length) {
  int index = Math.abs(random.nextInt() % keys.length);
  if (!addedKeys.contains(keys[index])) {
    addedKeys.add(keys[index]);
    shuffledKeys.add(keys[index]);
  }
}

/// Shuffled keys should now actually be "shuffled"

key0.setText(shuffledKeys.get(0));
key1.setText(shuffledKeys.get(1));
key2.setText(shuffledKeys.get(2));
key3.setText(shuffledKeys.get(3));
key4.setText(shuffledKeys.get(4));
key5.setText(shuffledKeys.get(5));
key6.setText(shuffledKeys.get(6));
key7.setText(shuffledKeys.get(7));
key8.setText(shuffledKeys.get(8));
key9.setText(shuffledKeys.get(9));


推荐阅读