zoukankan      html  css  js  c++  java
  • Java实例练习——java实现自动生成长度为10以内的随机字符串(可用于生成随机密码)

    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()); 
        }
    
    }
    

      

  • 相关阅读:
    postman发送请求携带Cookie
    maven打包相关配置
    springboot使用redis的keyspace notifications 实现定时通知
    JSON使用
    jdk1.8的一些特性
    Mysql--基础(一)
    04 difflib和filecmp
    08 存储引擎
    03 dnspython模块的应用
    02 IPy模块的应用
  • 原文地址:https://www.cnblogs.com/caoleiCoding/p/6545535.html
Copyright © 2011-2022 走看看