创建一个长度为n的随机字符串字符串(C Python Java三版实现)

来源:互联网 发布:个体工商户开淘宝 编辑:程序博客网 时间:2024/05/23 01:17

遇到这个一道题:

创建一个长度为n的随机字符串字符串(只含有小写字母和大写字母的)

C语言的版本:

<span style="font-size:12px;"> //C语言版#include<stdio.h>    #include<malloc.h>#include<random>char* stringRandom(int length){//生成长度为length的随记字符串char *str;int flag;if((str=(char*)malloc(length+1)) == NULL){//分配内存如果失败printf("ai si bi\n");return NULL;}for (int i = 0; i < length; i++){//开始添加随记数flag = rand()%2;if(flag){str[i] = 'A' + rand()%26;//这里对大小写的处理很帅啊}else{str[i] = 'a' + rand()%26; }}//注意在最后一定要加上'\0'注意斜杠的方向str[length]='\0';return str;}</span>

 PS:
>sprintf的用法
>sprintf(s, "%d", 123); //产生"123" 可以指定宽度,不足的左边补空格:
>把格式化代码添入字符串s中

这里就是Python版本,真的很强啊

#python版import randomimport stringdef randomString(n = 5):s = ''.join(random.sample(string.letters, n));return s;if __name__ =='__main__':print randomString(6)

 >PS:
>random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。 如果k大于sequence元素个数的话会报错。
>更多关于Python随机数内容在这里(http://blog.csdn.net/to_utopia/article/details/6662086)

>关于字符串的:(http://www.cnblogs.com/rollenholt/archive/2011/11/25/2263722.html)

然后是Java版本

<span style="font-size:12px;">import java.util.Random;//整体思路:先创建一个含有所有随机值的字符串,然后使用random决定选取字符串中的哪一个字符来组合成长度为n的新字符串public class Test{public static void main(String[] args){int length = 10;System.out.println(Test.RandomString(length));}public static String RandomString(int length){Random random = new Random();//创建random类String buff = "qwertyuioplkjhgfdsazxcvbnmAQWERTYUIOPLKJHGFDSZXCVBNM";StringBuffer stringbuff = new StringBuffer();//如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。int range = buff.length();for(int i = 0;i < length;i++){stringbuff.append(buff.charAt(random.nextInt(range)));//public int nextInt(int n)该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n。//append方法 public StringBuffer append(boolean b)该方法的作用是追加内容到当前StringBuffer对象的末尾,类似于字符串的连接。}return stringbuff.toString();}}</span>

 >参考资料:[StringBuff类]  ;  [Random类]


0 0
原创粉丝点击