编写一个Java程序,它能产生从0~9的十个数字中随机取出4个不重复的数字组成一个字符串

编写一个Java程序,它能产生从0~9的十个数字中随机取出4个不重复的数字组成一个字符串,例如:0123,3657,4578
还有最好用数组做哦,这是4个数的,如果6个呢,8个呢,我想用数组比较方便以后的改进吧

第1个回答  推荐于2017-10-09
import java.util.Random;
public class test{
public static void main(String[] args){
Random ran = new Random();
StringBuffer sb = new StringBuffer();
int i = 0;
while(i < 4){
int t = ran.nextInt(9);
if(sb.indexOf(String.valueOf(t)) == -1){
sb.append(t);
i++;
}
}
System.out.println(sb.toString());
}
}本回答被提问者采纳
第2个回答  2008-10-29
import java.util.Random;

public class A
{
public static void main(String[] args)
{
int lng=8;//这里是你要定义的总长度,想多少输多少,但是注意:不能超过随机数 间隔的最大值。
Random r = new Random();
String result = "";
String count =String.valueOf(r.nextInt(9));
while (result.length() != lng)
{
count =String.valueOf(r.nextInt(9));
if (result.contains(count)==false)
result += count;
}
System.out.println(result);
}

}
第3个回答  2008-10-25
一楼的写得真不错 sb.indexOf(String.valueOf(t)) == -1
可是你这个int t = ran.nextInt(9); t随机取不到9了哦 呵呵 改为10的话就完美了
下面是我写的 比较笨的方法 帮你调试好了 看下吧
import java.util.Random;
public class P {
public static void main(String[] args) {
Random rand = new Random();
int r1, r2, r3, r4;
flag:
while (true) {
r1 = rand.nextInt(10);
r2 = rand.nextInt(10);
r3 = rand.nextInt(10);
r4 = rand.nextInt(10);
if ((r1 != r2) && (r1 != r3) && (r1 != r4) && (r2 != r3)
&& (r2 != r4) && (r3 != r4)) {
System.out.println(r1 + "" + r2 + "" + r3 + "" + r4);
break;
}
continue flag;
}
}
}
第4个回答  2008-10-24
其实一楼写的非常好 那个.indexOf(String.valueOf(t)) == -1 用的相当精彩

我思量着
.indexOf(Integer.toString(t)) == -1 .indexOf(new Integer(t).toString()) == -1
也是可行的

为了展示不同的想法 我写个不同的 当然并不是最好的

import java.util.Random;
public class test{
public static void main(String[] args){
Random ran = new Random();
String str = new String();
boolean[] b = boolean[10];
for(int i = 0;i<4;i++){
int k;
while(!b[(k = ran.nextInt(9))]){
b[k]=true;
str+=k;
}
}
System.out.println(str);
}
}

没有编译 不知道是否有错误
第5个回答  2008-10-25
我楼上的这位.你这方法应该还算可以.
可以让些初学的比较明白.
不过关于运算速度不如
我的方法是弄个数组

import java.util.Random;

public class suijidemo {

public static void main(String[] args) {
Random r = new Random();
int s = 10;
int j;
int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, };
for (int i = 0; i < 4; i++) {
j = r.nextInt(s--);
System.out.print(a[j]);
a[j] = a[s];
}
}
}
相似回答