Java怎么生成一个指定长度的字符串,且这个字符串必须包含大小写字母和数字

大哥帮我问一下,Java怎么生成一个指定长度的字符串,且这个字符串必须包含大小写字母和数字
最新回答
爱是毒药

2024-11-08 08:21:41

#include <stdio.h>
#include <stdlib.h>

const cszChar[] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ";

void main(void)
{
FILE * f;//文件句柄
char buf[20];//随机字符串
int i;

randomize();//初始化随机值
for(i = 0;i < 20;i++)
buf[i] = cszChar[random(62)];//随机从cszChar中取一个字符

f = fopen( "filename ", "w ");//打开文件
if(f != NULL)//文件正常打开
fwrite(buf,sizeof(char),20,f);//写入
}
蝶眠落雪

2024-11-08 01:01:05

以前写的,你看看,有什么不懂得可以hi我
//练习:做一个生成随机密码的程序,要求:有大写字母/小写字母/数字.生成六位随机密码。
import java.util.*;
class Secret
{
public String secretTable()//生成密码表
{
char[] secret=new char[62];
for(int i=0;i<secret.length;i++)
{
if(i<26)
secret[i]=(char)(97+i);
else if(i<52)
secret[i]=(char)(39+i);
else secret[i]=(char)(i-4);//'0'的ASCI码为48

}
String str=new String(secret);
return str;
}

public String secret(char[] ch)//生成六位随机密码
{
int n;
char[]sec=new char[6];
Random random=new Random();
for(int i=0;i<6;i++)
{
n=random.nextInt(62);
sec[i]=ch[n];
}
display(sec);
String str=new String(sec);
return str;
}

public String testStrick(char[] ch)//测试密码是否包括大写、小写、数字
{
Secret secret=new Secret();
int m1=0,m2=0,m3=0;
for(int i=0;i<6;i++)
{
if(ch[i]<97)
m1++;
if(ch[i]>65)
m2++;
if(ch[i]<58&&ch[i]>97)
m3++;
}
if(m1==6||m2==6||m3==6)
{
char []ch1=new char[62];
char []ch2=new char[6];
ch1=secretTable().toCharArray();
ch2=secret(ch1).toCharArray();
ch=testStrick(ch2).toCharArray();

}
String str=new String(ch);
return str;

}

public void display(char[] ch)
{

for(int i=0;i<ch.length;i++)
System.out.print(ch[i]);
System.out.println();
}

public static void main(String[] args)
{
Secret secre=new Secret();
char[] sec=new char[62];
char[] s=new char[6];
sec=secre.secretTable().toCharArray();
s=secre.secret(sec).toCharArray();
s=secre.testStrick(s).toCharArray();
System.out.print("随机生成的六位密码为:");
secre.display(s);
}
}
栀心

2024-11-08 04:11:07

看一下这个。

----------------------------------------------------------------------------------------------------
public class StringLen {

public static void main(String[] args) {
StringBuffer buff = new StringBuffer();
int len = 10;
if (len < 3) {
// 必须包含大小写字母和数字
// 那这个字符串最小长度是3.
return;
}

int index = 0;
for (int i = 0; i < len; i++) {
char c = 'a';
int random = (int) (Math.random() * 1000);
if (i > 3) {
index = random % 3;
} else {
index = i;
}

switch (index) {
case 0:
buff.append((char) (97 + random % 26));
break;
case 1:
buff.append((char) (65 + random % 26));
break;
case 2:
buff.append((char) (48 + random % 10));
break;
}
}

System.out.println(buff.toString());
}
}