【发布时间】:2014-12-30 09:56:00
【问题描述】:
我有包含 5 种不同说法的字符串,我正在尝试将它们随机化,没有任何重复,并在它们都被选中后重复这句话。
到目前为止我有
final String[] mySays = { "x", "y", "z", "a", "b",}
@覆盖 公共无效 onClick(查看 v){ //将数字更改为“说”的数字 int aNumber = (int) (Math.random() * 5); textOne.setText(mySays[aNumber]);
我可以添加什么?
非常感谢任何帮助。
编辑:
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final 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;
}
}
【问题讨论】:
标签: string random duplicates