Java怎么生成一个指定长度的字符串,且这个字符串必须包含大小写字母和数字
3个回答
展开全部
#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);//写入
}
#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);//写入
}
展开全部
以前写的,你看看,有什么不懂得可以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);
}
}
//练习:做一个生成随机密码的程序,要求:有大写字母/小写字母/数字.生成六位随机密码。
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);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看一下这个。
----------------------------------------------------------------------------------------------------
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());
}
}
----------------------------------------------------------------------------------------------------
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());
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询