Java 生成随机字符串数组

2016-04-26  本文已影响1912人  Yanci516

本篇文章的知识为,利用Collections.sort()方法对泛型为String的List 进行排序。具体要求:

将涉及到的知识有: String、StringBuffer、ListArray、泛型、Collections.sort、foreach、Random等相关知识,算是 在JAVA 学习过程中一个比较好的的实践。

1. 随机生成一个字符

String str = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStT
              uUvVwWxXyYzZ0123456789";
Random random = new Random();
int index = random.nextInt(str.length());
char c = str.charAt(index);

2. 生成一条长度为10以内的随机字符串

StringBuffer stringBuffer = new StringBuffer();
//确定字符串长度
int stringLength = (int) (Math.random()*10);
for (int j = 0; j < stringLength; j++) {
    int index = random.nextInt(str.length());
    char c = str.charAt(index);
    stringBuffer.append(c);    
 }
//将StringBuffer转换为String类型的字符串
String string = stringBuffer.toString(); 

3. 生成10条随机字符串

4. 创建一个 ListArray<String> 集合储存着10条随机字符串

List<String> listString = new ArrayList<String>();
//判断当前的list容器中是否已有刚生成的字符串,满足每条字符串不可重复性
if(!(listString.contains(stringBuffer.toString()))){
     listString.add(stringBuffer.toString());
 }else {
     //i-- 如果不满足则重新生成
    i--;
 }

5 最后对集合排序

总的代码

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class RandomString {

    public static void main(String[] args) {
        List<String> strList = randomString();
        System.out.println("------随机生成的10条字符串-------");
        for (String string : strList) {
            System.out.println(string);
        }
        System.out.println("------------排序后------------");
        Collections.sort(strList);
        for (String string : strList) {
            System.out.println(string);
        }    
    }
    public static List<String> randomString(){
        //将所有的大小写字母和0-9数字存入字符串中
        String str = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789";
        Random random = new Random();
        List<String> listString = new ArrayList<String>();
        String strArray[ ] = new String[10];
        //生成10条长度为1-10的随机字符串
        for (int i = 0; i < 10; i++) {
            StringBuffer stringBuffer = new StringBuffer();
            //确定字符串长度
            int stringLength = (int) (Math.random()*10);
             for (int j = 0; j < stringLength; j++) {
                 //先随机生成初始定义的字符串 str 的某个索引,以获取相应的字符
                int index = random.nextInt(str.length());
                char c = str.charAt(index);
                stringBuffer.append(c);    
             }
             //判断当前的list容器中是否已有刚生成的字符串,满足每条字符串不可重复性
             if (!(listString.contains(stringBuffer.toString()))) {
                 listString.add(stringBuffer.toString());
            }else {
                i--;
            }
             
        }
        return listString;
    }
}

输出答案不唯一

上一篇 下一篇

猜你喜欢

热点阅读