package sorttest; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Random; public class SortTest { public void sortString() { List<String> stringList = new ArrayList<String>(); char[] charAndnum = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".toCharArray(); Random random = new Random(); //用于产生随机数 for (int j = 0; j < 10; j++) { String string = new String(); do{ int sLength = random.nextInt(10); for(int i = 0;i<((sLength==0)?1:sLength);i++){ string+= charAndnum[random.nextInt(51)]; } }while(stringList.contains(string)); stringList.add(string); } System.out.println("---------------排序前---------------"); for (String str : stringList) { System.out.println("生成的字符串为:"+str); } Collections.sort(stringList); System.out.println("---------------排序后---------------"); for (String str : stringList) { System.out.println("生成的字符串为:"+str); } } public static void main(String[] args) { // TODO Auto-generated method stub SortTest sTest = new SortTest(); sTest.sortString(); } }
今天更新第二种实现方式:(更简短)
package oop; import java.io.IOException; import java.nio.CharBuffer; import java.util.Random; import java.util.Scanner; public class PassWrodsCreater implements Readable { private static Random random = new Random(47); private static final char[] alls = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ@#!$%*&/".toCharArray(); // 生成字密码的数量 private int count; // 生成密码长度 private int length; public PassWrodsCreater(int count,int length) { this.count = count; this.length = length; } @Override public int read(CharBuffer cb) throws IOException { if(count-- == 0) return -1; for(int i = 0; i < length; i++){ cb.append(alls[random.nextInt(alls.length)]); } cb.append(" "); return 0; } public static void main(String[] args) { Scanner sc = new Scanner(new PassWrodsCreater(3,9)); while(sc.hasNext()) System.out.println(sc.next()); } }