Java实例练习——java实现自动生成长度为10以内的随机字符串(可用于生成随机密码)
作者:@syske
本文为作者原创,转载请注明出处:https://www.cnblogs.com/caoleiCoding/p/6545535.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 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(); } } |
今天更新第二种实现方式:(更简短)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 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()); } } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步