⑴ 用java生成6位验证码,由大小写数字组成,不能重复字符
生成随机可以用Random类,不能重复可以考虑放在HashSet中,因为HashSet的值是不能重复的,看代码如下:
{
publicstaticvoidmain(String[]args){
Set<String>store=getletterandnum(6);
printSet(store);
}
publicstaticSet<String>getletterandnum(intlength){
Set<String>set=newHashSet<String>();
for(inti=0;i<length;i++){
Stringvalue=getrandom();
set.add(value);
}
if(set.size()<length){//如果没有生成6位
Stringvalue=getrandom();//继续调用生成随机数的方法
set.add(value);
}
returnset;
}
privatestaticStringgetrandom(){//生成随机字母和数字方法
Stringvalue="";
Randomrandom=newRandom();
intgen=random.nextInt(2);//0、1、2
Stringcharornum=gen%2==0?"char":"num";
if("char".equals(charornum)){
inttemp=random.nextInt(2)%2==0?65:97;
intascii=random.nextInt(26);
value+=(char)(ascii+temp);
}elseif("num".equalsIgnoreCase(charornum)){
value+=String.valueOf(random.nextInt(10));
}
returnvalue;
}
publicstaticvoidprintSet(Setset){//打印set的方法
Iteratoriterator=set.iterator();
while(iterator.hasNext()){
Stringele=(String)iterator.next();
System.out.print(ele+"");
}
}
⑵ java如何随机生成6位数的验证码
public static final char[] chars={'1','2','3','4','5','6','7','8','9','0','Q','W','E','R','T','Y','U','I','O',
'P','A','S','D','F','G','H','J','K','L','Z','X','C','V','B','N','M'};
public static Random random=new Random();
public static String getRandomString(){
StringBuffer sb=new StringBuffer();
for(int i=0;i<=5;i++){
sb.append(chars[random.nextInt(chars.length)]);;
}
return sb.toString();
}
⑶ java 随机生成一个六位数
publicclassGuessNum{
publicstaticvoidmain(String[]args){
inti=getRandomNum();
System.out.println("已生成随机数!");
System.out.println(i);//方便测试打印出随机数~~可删除~~
while(true){
try{
System.out.print("请输入一个6位正"+"整数:");
Readerreader=newInputStreamReader(System.in);
char[]b=newchar[6];
reader.read(b);
StringguessStr=newString(b).trim();
intguessInt=Integer.parseInt(guessStr);
if(guessInt==i){
System.out.println("恭喜猜对!");
break;
}
System.out.println("不对重猜!");
}catch(Exceptione){
System.out.println("输入有误!");
}
}
}
privatestaticintgetRandomNum(){
Randomr=newRandom();
returnr.nextInt(900000)+100000;
}
}
⑷ 请问用java从1-33个整数中随机抽取6个数字 且不重复 1-16随机抽取一个数,给小球
完整代码为:
public class Main {
public static void main(String[] args) {
int index = 1;
int[] redBalls = new int[6];
Random random = new Random();
boolean getMoreRed = true;
boolean getAgain;
System.out.println("开始抽取红球!");
while (getMoreRed) {
getAgain = false;
int red = random.nextInt(36) + 1;
System.out.print("本次抽取到的红球为:[" + red + "]!");
for (int i = 0; i < index; i++) {
if (redBalls[i] == red) {
System.out.print("重复抽取,将重新抽取红球");
getAgain = true;
break;
}
}
System.out.println("");
if (getAgain){
continue;
}
redBalls[index - 1] = red;
index++;
getMoreRed = index < 7;
}
System.out.println("抽取到的红球为:");
Arrays.sort(redBalls);
for (int redBall : redBalls) {
System.out.print(redBall + " ");
}
System.out.println("
开始抽取蓝球!");
System.out.println("本次抽取到的蓝球为:[" + (random.nextInt(16) + 1) + "]!");
}
}
⑸ 请问用java从1-33个整数中随机抽取6个数字 且不重复 该怎么写
public static void main(String[] args) { int[] x = new int[33]; //创建值为1-33的整数表, 初始化 for (int i = 0; i < x.length; i++) { x[i] = i+1; } // ------------------------------------------------- for (int i = 0; i < 6; i++) { // 随机取值6次 (你可以把6改成33. 试试看会不会出现重复值) int j = (int) (Math.random()*(33-i)); // 随机值依次递减1, 以保证不可能重复随机到33这个值 System.out.println("第" + (i+1) + "个随机数为: "+ x[j]);// 输出随机值(真正的随机值为整数表x中的数) x[j] = x[33-i-1]; // 整数表x中已被随机到的值替换为表中最后一个数, 避免以后可能随机到 } // ------------------------------------------------- // 整个思路你可以想象成是栈堆的出栈, 随机到的值出栈, 就不会随机到重复值 } 有问题欢迎继续提问, 希望能帮你解决问题!
⑹ java编程 随机产生6位的数字
String s = "";
while(s.length()<6)
s+=(int)(Math.random()*10);
⑺ 请问:java产生6个数字的随机数怎么写
你看看这样可以不:
publicclassTest{
publicstaticvoidmain(Stringargs[]){
int[]nums=newint[6];
for(inti=0;i<nums.length;i++){
nums[i]=(int)(Math.random()*10);
}
System.out.print("产生的6位随机数为:"+nums[0]+nums[1]+nums[2]+nums[3]+nums[4]+nums[5]);
}
}
⑻ 关于Java里产生1-6随机数的方法
我认为2种方法产生的1~6的几率是相等的,都为1/6.
第一种(int)(Math.random()*10)%6得到0~6的随机数,每个数的产生的概率为1/7,再加上1,得到1~6的随机数,0不再出现,每个数产生的几率1/6.
另一种(int)(Math.random()*6)产生0~5,每个数产生的概率为1/6,再加上1,得到1~6的随机数,每个数产生的几率仍为1/6.
⑼ 请问:java产生6位数字的随机数怎么写最后给个代码类
有没有 具体的什么要求呀,下面是生成一个。多的话加个计数器就好了!!
import java.util.Random;
public class test {
static Random r = new Random();
public static void main(String[] args) {
int x = r.nextInt(999999);
if(x > 100000) {
System.out.println(x);
return;
}
}
}
那以上的代码就可以了,你运行下看看。 有别的要求再说!
⑽ 用java编写随机生成一个6位的正整数,编程实现由这六位数字生成的最大数和最小数
publicstaticvoidmain(String[]args){
//根据数组个数循环
int[]ary=newint[6];
Stringresult="";
intmax=0;
intmin=9;
for(inti=0;i<6;i++){
ary[i]=(int)(Math.random()*10);
//首位数字不能为0
while(ary[0]==0){
ary[0]=(int)(Math.random()*10);
}
result+=ary[i];
//取出最大最小值,用于组装最大最小值
max=Math.max(ary[i],max);
min=Math.min(ary[i],min);
}
//输出随机数字
System.out.println(Integer.parseInt(result));
//排序
Arrays.sort(ary);
//最大值
StringmaxResult="";
for(inti=5;i>=0;i--){
maxResult+=ary[i];
}
System.out.println(Integer.parseInt(maxResult));
//最小值
StringminResult="";
for(inti:ary){
minResult+=i;
}
System.out.println(Integer.parseInt(minResult));
}