java⽣成数字_Java(⽣成数字不重复)
我正在制作⼀个应⽤程序,下⾯的代码应该⽣成7个随机数字并将它们打印到屏幕上,⽽且没有⼀个数字应该与其他数字相同。
我已经尝试过这样做的各种⽅式。我花了5个⼩时检查它,得到第⼆个意见,他们说它应该⼯作,但事实并⾮如此。
它有什么作⽤?它只是在屏幕上写⼊7个随机数字,但⼤多数情况下都存在重复,⼤部分时间应⽤程序停⽌(错误),但代码中没有错误。这只是我尝试过的很多⽅式之⼀。
请有⼈告诉我,如果有什么不对吗?或有建议?或者如此友善地给我⼀些例⼦代码来替换while循环?任何建议将是伟⼤的轴承牢记我对Java很新。
更新:while循环是主循环。它调⽤⼀个数字⽅法,然后创建7个随机数并将它们存储在“text_counter”数组中,然后检查它们是否在数组中重复数字,如果不是,它会跳出循环并将它们打印到屏幕上如果它回到循环的开始部分以产⽣更多的随机数并再次检查它们。
这是代码
import java.util.HashSet;
java生成随机数的方法import java.util.Random;
import java.util.Set;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Lotto extends Activity {
/** Called when the activity is first created. */
Random dice = new Random();
TextView top, med, and, qcounter, wcounter, ecounter, rcounter, tcounter,
ycounter, ucounter;
@SuppressWarnings("rawtypes")
Set uniqueItems = new HashSet();
Button gen;
EditText input1, input2;
int[] text_counter = { 1, 2, 3, 4, 5, 6, 7 };
boolean o = false;
boolean oo = false;
boolean ooo = false;
int text1;
int pre_text2;
int count = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.lotto_xml);
gen = (Button) findViewById(R.id.b_gen);
// // text view var
qcounter = (TextView) findViewById(R.id.q_lotto);
wcounter = (TextView) findViewById(R.id.w_lotto);
ecounter = (TextView) findViewById(R.id.e_lotto);
rcounter = (TextView) findViewById(R.id.r_lotto);
tcounter = (TextView) findViewById(R.id.t_lotto);
ycounter = (TextView) findViewById(R.id.y_lotto);
ucounter = (TextView) findViewById(R.id.u_lotto);
//
final EditText input1 = (EditText) findViewById(_min); final EditText input2 = (EditText) findViewById(_max); gen.setOnClickListener(new View.OnClickListener() {
@SuppressWarnings({ "unchecked" })
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
o = false;
oo = false;
count = 0;
while (o == false) {
number();
count = 0;
for (int i = 0; i < text_counter.length; i++) {
if (!uniqueItems.add(text_counter[i])) {
count = count + 1;
}
}
if (count == 0) {
}
}
qcounter.setText(String.valueOf(text_counter[0]) + ","); wcounter.setText(String.valueOf(text_counter[1]) + ","); ecounter.setText(String.valueOf(text_counter[2]) + ","); rcounter.setText(String.valueOf(text_counter[3]) + ","); tcounter.setText(String.valueOf(text_counter[4]) + ","); ycounter.setText(String.valueOf(text_counter[5]) + ","); ucounter.setText(String.valueOf(text_counter[6]));
}
private void number() {
// TODO Auto-generated method stub
text1 = Integer.Text().toString()); text2 = Integer.Text().toString()); text2 = text2 - text1;
text2 = text2 + 1;
for (int i = 0; i < 7; i++) {
text_counter[i] = text1 + Int(text2);
}
}
});
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论