求助!用户名由a-z,A-Z,0-9组成,可以是5~10位数,数字不能开头,编程打印出所有用户名,java/c++均可。

 我来答
云梦之竹h
2016-11-29 · TA获得超过266个赞
知道小有建树答主
回答量:224
采纳率:0%
帮助的人:97.9万
展开全部

public static void main(String[] args) {

String allChars="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

long min=62*62*62*62;

long max=min*62*62*62*62*62*62;

for(long j=min;j<max;j++){

String s="";

long t=j;

while(t!=0){

s=allChars.charAt((int)(t%62))+s;

t=t/62;

}

if("0123456789".contains(s.charAt(0)+"")) j=j*10-1;//去除数字开头的

else System.out.println(s);

}

}


追问
感觉跟62进制似的,不明觉厉。谢谢大神,我得多想想
百度网友53ebc42
2016-11-29 · TA获得超过349个赞
知道小有建树答主
回答量:307
采纳率:80%
帮助的人:127万
展开全部
全部输出也有52*62^9,有点大啊,你确定要?
追问
是啊,关键是函数怎么写
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-11-29
展开全部
不是很清楚你的需求,是要做校验,还是输入再输出
更多追问追答
追问
不用那些,就是输出所有满足要求的用户名
追答
/**
 * 这个方法因为用户长度在5-10之间,不长就采用这种遍历每个字符判断的方式,如果用户名称长的话,建议使用正则表达式,当然本方法也可以判断长的用户名,只是数据量多的情况下,效率无法保证
 */
public static void checkUserName(List<String> nameList) {

if (nameList != null && nameList.size() > 0) {
String name = null;
int lowerCaseA = 'a';
int uperCaseA = 'A';
int lowerCaseZ = 'z';
int uperCaseZ = 'Z';
int zeroCode = '0';
int nineCode = '9';
boolean isPrint;
for (int i = 0; i < nameList.size(); i++) {
isPrint = true;
name = nameList.get(i);
char c;
for (int j = 0; j < name.length(); j++) {
c = name.charAt(j);// 依次获取到每个字符做判断
if (j == 0) {
// 首字符判断
if ((c >= lowerCaseA && c <= lowerCaseZ) || (c >= uperCaseA && c <= uperCaseZ)) {
//本if表示首字符是字母开头
}else{
System.err.println(name+" 首字符为非字母开头,不合法");
isPrint = false;
break;
}
}else{
//判断其他字符
if ((c >= lowerCaseA && c <= lowerCaseZ) || (c >= uperCaseA && c <= uperCaseZ) || (c >= zeroCode && c <= nineCode)) {
//本if表示该字符是字母或数字
}else{
System.err.println(name+" 首字符为非字母开头,不合法");
isPrint = false;
break;
}
}
}
if(isPrint){
System.out.println("符合规则的用户名称:"+name);
}
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式