如何在Android Java中创建介于最小值和最大值之间的随机数,不包括介于最小值和最大值之间的某些数?
我有三个var,每个var是介于1到100之间的随机数。我可以使用math.rand()进行随机数处理,但是我试图确保三个数字不匹配。我做了一些关于while和if语句的工作,但是我一直在寻找是否有一行命令来执行此操作,以便可以将其放在活动类下,以便它是公共变量。在该区域(活动),我无法使用while和if语句,由于空白或其他原因,我只能在onCreate中使用。
在此先感谢您的帮助,并会投票给将寻求有关此信息的任何帮助或想法。
最佳答案
这是我的AndroidActivity代码,它可以正常工作。
package com.androidbook.droid1;
import java.util.Random;
import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
public class DroidActivity3 extends Activity
{
public static class GetThreeRandomIntClass
{
public static class Dots
{
public int a;
public int b;
public int c;
public Dots()
{
a = 0;
b = 0;
c = 0;
}
@Override
public String toString()
{
return "[" + a + "]" + "[" + b + "]" + "[" + c + "]";
}
}
public static void getThreeRandomInt(Dots d)
{
int[] arr = new int[100];
Random r = new Random();
for(int i=0; i<arr.length ; i++){
arr[i] = i + 1;
}
int randInt = r.nextInt(100);
d.a = arr[randInt];
for(int i=randInt; i<arr.length - 1 ; i++){
arr[i] = arr[i + 1];
}
randInt = r.nextInt(99);
d.b = arr[randInt];
for(int i=randInt; i<arr.length - 2 ; i++){
arr[i] = arr[i + 1];
}
randInt = r.nextInt(98);
d.c = arr[randInt];
}
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
this.setContentView(R.layout.third);
GetThreeRandomIntClass.Dots d = new GetThreeRandomIntClass.Dots();
GetThreeRandomIntClass.getThreeRandomInt(d);
TextView textView1 = (TextView) this.findViewById(R.id.textView1);
textView1.setText(String.valueOf(d.a));
TextView textView2 = (TextView) this.findViewById(R.id.textView2);
textView2.setText(String.valueOf(d.b));
TextView textView3 = (TextView) this.findViewById(R.id.textView3);
textView3.setText(String.valueOf(d.c));
super.onCreate(savedInstanceState);
}}