⑴ 用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));
}