Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 不重复地随机化字符串_String_Random_Duplicates - Fatal编程技术网

String 不重复地随机化字符串

String 不重复地随机化字符串,string,random,duplicates,String,Random,Duplicates,我有5个不同的谚语串,我试图使他们随机没有任何重复,并重复说,一旦他们都被挑选出来 到目前为止我有 最后一个字符串[]mySays={x,y,z,a,b,} @凌驾 公共视图v{ //把数字改成不管怎么说的数字 int aNumber=int Math.random*5; textOne.setTextmySays[aNumber] 我可以补充什么 非常感谢您的帮助 编辑: 这里有一种方法使用ArayList模拟从帽子中挑选您想要做的事情。ArrayList很方便,因为您可以轻松删除元素,然后从

我有5个不同的谚语串,我试图使他们随机没有任何重复,并重复说,一旦他们都被挑选出来

到目前为止我有

最后一个字符串[]mySays={x,y,z,a,b,}

@凌驾 公共视图v{ //把数字改成不管怎么说的数字 int aNumber=int Math.random*5; textOne.setTextmySays[aNumber]

我可以补充什么

非常感谢您的帮助

编辑:


这里有一种方法使用ArayList模拟从帽子中挑选您想要做的事情。ArrayList很方便,因为您可以轻松删除元素,然后从列表中剩余的元素中随机挑选

List<String> myStrings = new ArrayList<String>() {{
    add("A");
    add("B");
    add("C");
    add("D");
    add("E");
}};
List<String> dupeList = new ArrayList<String>() {{addAll(myStrings);}};
Random r = new Random();

public String pick() {
    String retval = "";
    int pos;
    switch (dupeList.size()) {
        case 1:
            retval = dupeList.get(0);
            dupeList.clear();
            dupeList.addAll(myStrings);
            return retval;
        default:
            pos = r.nextInt(dupeList.size());
            retval = dupeList.get(pos);
            dupeList.remove(pos);
            return retval;
    }
}

当我输入dupeList时,我得到了红线。顺便说一句,我使用的是android studio。也许这就是原因?对不起,不清楚您从哪里得到错误。您是否像上面的示例中那样首先声明了错误?例如,List dupeList=new…您是否导入了List和ArrayList?就像导入java.util.ArrayList一样;导入java.util.List;在下面的文件顶部包指令是什么?我有。它列出了。错误是无法解析符号“dupeList”,这很奇怪。我在我的机器上用Android运行了这段代码,它运行了find。如果它说无法解析符号dupeList,这意味着出于某种原因,您的变量声明通常无法被识别,这是某种拼写或大写错误例如,当您声明dupeList时,尝试使用dupeList。
List<String> myStrings = new ArrayList<String>() {{
    add("A");
    add("B");
    add("C");
    add("D");
    add("E");
}};
List<String> dupeList = new ArrayList<String>() {{addAll(myStrings);}};
Random r = new Random();

public String pick() {
    String retval = "";
    int pos;
    switch (dupeList.size()) {
        case 1:
            retval = dupeList.get(0);
            dupeList.clear();
            dupeList.addAll(myStrings);
            return retval;
        default:
            pos = r.nextInt(dupeList.size());
            retval = dupeList.get(pos);
            dupeList.remove(pos);
            return retval;
    }
}
 `text1.setText(pick());`