Long Bro博客——查看其它Long Bro影院
java笔试题详解之生成高级数组

  作者:赵成龙  发布时间:2019-03-02 19:54:44  所属类别:学习笔记  浏览量:378



 

        该道笔试题题目是这样滴:

实现一个方法,能够生成一个随机字符串数组,这些字符串必须是不一样的,每个字符串由字母和数字组成。方法输入参数有两个

Count:字符串数目,Str_Length:字符串长度
可以考虑下面的模块来帮助实现(string.ascii,string.digits and random.choice())

        接下来直接上代码

        /**
*
* @param nums 数组中字符串个数
* @param num 每个字符串含有的字符数量
* @return 返回生成的字符串数组
*/
public static String[] generateRandom(int nums,int num){
char ch[]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f',
'g','h','i','g','k','l','m','n','o','p','q','r','s','t','u','v','w',
'x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N',
'O','P','Q','R','S','T','U','V','W','X','Y','Z'};
String ss[]=new String[nums];//含有nums个字符串的字符串数组
String s="";
for(int i=0;i<nums;i++){//外层循环执行一次,生成一个字符串
for(int j=0;j<num;j++){//num表示字符串中字符数量
s=s+ch[new Random().nextInt(ch.length)];
}
if(!contains(ss, s)){//如果数组中不含新生成的字符串,则添加
ss[i]=s;
}else{//反之,i--,重新生成ss[i]
System.err.println("数组中已存在该字符串,将重新生成"+s);
i--;
}

// System.err.println(s);
s="";
}

return ss;
}

        注意以上方法中调用了contains(ss, s)方法,该方法用来判断ss数组中是否包含s字符串。如果包含的话,自然是要重新生成滴!

        /**
* 判断字符串数组中是否已含某一字符串
* @param ss 字符串数组
* @param s 字符串
* @return 含有返回true,不含返回false
*/
public static boolean contains(String[] ss,String s){
for(String m:ss){//遍历数组中元素,如果有与s一样的字符串,返回true
if(s.equals(m)){
return true;
}
}
return false;
}

        下面在main方法中调用上面第一个方法,并为其赋参数,指定生成一个包含10个字符串的数组,每个字符串长度为6

        public static void main(String[] args) {

		// TODO Auto-generated method stub
String ss[]=generateRandom(10, 6);
System.out.println(Arrays.toString(ss));
for(String s:ss){
System.out.println(s);
}

}

观察输出

[t0h54z, enbDUT, pLcaZg, 5lRWIG, Mebgnm, sHAcDi, ZYKkrO, InbDZl, Cws2im, GatY5m]
t0h54z
enbDUT
pLcaZg
5lRWIG
Mebgnm
sHAcDi
ZYKkrO
InbDZl
Cws2im
GatY5m

OK!





本文出自LongBro博客,如需转载请注明出处。
本文链接:http://www.longqcloud.cn/blogs/73.html
上一篇:java笔试题详解之冒泡排序
下一篇:记录最近在学习项目时新学到的MySQL知识




如果你觉得这篇文章对你有用,欢迎 打赏(打赏记录)

打赏多少,你高兴就行,谢谢你对Long Bro这小子的支持  ^-^

来自:117.94.20.251的评论

学习

2019-03-03 13:47:44