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

 我来答
百度网友57ac99c4d
2012-04-20
知道答主
回答量:31
采纳率:0%
帮助的人:12.6万
展开全部
/**
* 得到一个随机的由数字与字母组成的文件名
* @return
* @date :2011-12-2
*/
public static String getRandomName(){
String name="";
Random random = new Random(); // 实例化一个Random对象
int itmp=0;
int length=20;//默认的文件长度是20
try{
length=Integer.valueOf(Config.getSingleConfig(ConfigItem.DOC_NAME_LENGTH));
}catch(Exception e){}
for (int i = 0; i <length ; i++) {
if (random.nextInt(2) == 1) {
itmp = random.nextInt(26) + 65; // 生成A~Z的字母
} else {
itmp = random.nextInt(10) + 48; // 生成0~9的数字
}
char ctmp = (char) itmp;
name += String.valueOf(ctmp);
}
return name;
}
追问
谢谢啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a399495
2012-04-20 · TA获得超过243个赞
知道答主
回答量:48
采纳率:100%
帮助的人:70.5万
展开全部
下面代码中变量length便是指定的长度,运行程序后可直接从键盘输入。
Random r = new Random();
StringBuilder sb = new StringBuilder();

char ansiIndex;
int i;
Character projection[] = new Character[62];
ansiIndex = '0';
for(i = 0; i < 10; i++) {
projection[i] = ansiIndex;
ansiIndex++;
}
ansiIndex = 'a';
for(i = 10; i < 36; i++, ansiIndex++) {
projection[i] = ansiIndex;
}
ansiIndex = 'A';
for(i = 36; i < 62; i++, ansiIndex++) {
projection[i] = ansiIndex;
}
int randomValue;
int length;
Scanner sc = new Scanner(System.in);
length = sc.nextInt();
for(i = 0; i < length; i++ ) {
randomValue = r.nextInt(62);
sb.append(projection[randomValue]);
}
System.out.println(sb.toString());
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cresofy
2012-04-20
知道答主
回答量:27
采纳率:0%
帮助的人:8.6万
展开全部
用正则表达式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式