永发信息网

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

答案:6  悬赏:60  手机版
解决时间 2021-02-25 15:11
编写一个Java程序,它能产生从0~9的十个数字中随机取出4个不重复的数字组成一个字符串
最佳答案
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());
}
}
全部回答
其实一楼写的非常好 那个.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);
}
}
没有编译 不知道是否有错误
一楼的写得真不错 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;
}
}
}
我楼上的这位.你这方法应该还算可以.
可以让些初学的比较明白.
不过关于运算速度不如
我的方法是弄个数组
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];
}
}
}
佩服一楼的
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);
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
杭电1021题,为么事我写的不能通过,求纠正
判断:小丽跳高的高度的她的身高成正比例.对
在东京退款退到我的东京余额,我该怎么样使用
冷得很什么填空
corelDRAW 输出PDF 图片要转换颜色模式吗?
小汤渔具我想知道这个在什么地方
当固体悬浮在液体当中时,浮力等于重力 这时
半闲居柳沙半岛店在哪里啊,我有事要去这个地
郑州五洲警务室办暂住证电话
哪部小说里有叫承天的?
形容水果多的成语
和美春天原售楼部地址在什么地方,想过去办事
几个学习中的疑问,1、受到滑动摩擦力作用的物
包含“奈何桥上等三年”的一首歌曲
骨癌一般发展有多快
推荐资讯
黄子龙的姓名五格评分
到底是xps13还是xps15好
康利来足浴地址在什么地方,想过去办事
嘎嘎,不是我不是我不是我P的,是别人
汽车正时链条和摩托车链条机工作原理一样吗
沥青防水层应该做什么检验批
北京雅思英语培训学校地址在哪,我要去那里办
哈尔滨哪里有夜市和早市?
艺海晨曦艺术培训中心我想知道这个在什么地方
急求:鬼泣4mod制作,efl特效文件总什么工具
如何防范蛊毒和降头
3.14-兀的绝对值等于几?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?