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

 我来答
tianxu1988
2012-04-20
知道答主
回答量:27
采纳率:100%
帮助的人:15.2万
展开全部
#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);//写入
}
我是谁我在哪我要干什么呢
2012-04-20 · TA获得超过560个赞
知道小有建树答主
回答量:350
采纳率:100%
帮助的人:374万
展开全部
以前写的,你看看,有什么不懂得可以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);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友845f74e61
2012-04-20 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1631万
展开全部
看一下这个。

----------------------------------------------------------------------------------------------------
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());
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式