当前位置:编程学习 > JAVA >>

java产生随即数字的问题!!!!在线等!高手进!

import java.util.Random; public class Demo { public static void main (String args[]) { Random rnd = new Random(); int[] nums = new int[9]; for (int i=1; i<10; i++) { int p = rnd.nextInt(9); if (nums[p] != 0) i--; else nums[p] = i; } for (int i=0; i<9; i++) { System.out.print(nums[i]); if (i % 4 == 3) System.out.println(); } } } 这端程序现在是可以产生 1-9 的 2组随即数字的!!切不重复的数字!! 我想要的是 可以一下产生如: 1122 1457 3478 3355 这样一下产生100的4位数字,不知道怎末写了 高手请进,产生的4位数字中不能有重复的数字出现,谢谢在线等高手进!!!!
补充:重复的数字 就是
1122
1122
这样出现2遍的那种!
0001
0005 这样的也是可以的 必须是4位数字!
追问:你的已经很接近了 
但是我还需要0001的这种数字的 其实就是1-10000中的数字的,如果是1位数字的话 前面就自己加000  组成0001;2位数字的话就是前面加2个00  ,如00  10;有时间么 在你的上面在帮忙改下 谢谢了!!!2位数字的不行的!!
答案://完整程序:
import java.util.Random;

public class Demo {
	public static void main (String args[]) {
		Random rnd = new Random();
		int numLength = 9;
		int[] nums = new int[numLength];
		nums[0] = rnd.nextInt(9999);
		mylable: for (int i=0; i<numLength; i++) {
			int p = rnd.nextInt(9999);
			for (int j=0; j<i;) {
				if (p==nums[j]) {
					i--;
					continue mylable;
				}
				j++;
				if (j==i) {
					nums[i]=p;
            		break;
            	}
            }
		}
		for (int i=0; i<numLength; i++) {
			int dig = (int) Math.log10(nums[i]);
			if (dig<3) {
				for (int j=1;j<dig;j++) {
					System.out.print("0");
				}
			}
			System.out.println(nums[i]);
		}
	}
}
//其中numLength 是要生成数字的个数,自己定,有不懂的问我!
其他:我的手机是p1i,用手机上网下载jad文件安装,比如opera mini(java),安装完我用的m600,不过也差不多:控制面板-- public static void main(String[] args) {
		// TODO Auto-generated method stub
		int gewei=(int)(Math.random()*10);//个位(随机产生0-9的一个数)
		int shiwei=(int)(Math.random()*10);//十位
		int baiwei=(int)(Math.random()*10);//百位
		int qianwei=(int)(Math.random()*10);//千位
		boolean isOk=false;
		while(isOk==false){
			if(gewei==shiwei||gewei==baiwei||gewei==qianwei||
					shiwei==baiwei||shiwei==qianwei
					||baiwei==qianwei){
				gewei=(int)(Math.random()*10);
				shiwei=(int)(Math.random()*10);
				baiwei=(int)(Math.random()*10);
				qianwei=(int)(Math.random()*10);
			}else{
				isOk=true;
			}
		}
		System.out.print(gewei+shiwei*10+baiwei*100+qianwei*1000);
	}

不知道是不是你想要的--试试看吧

上一个:Java证书怎么用电脑下到手机里
下一个:java 递归问题

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,