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