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

      

  • 相关阅读:
    在eclipse中如何在大量项目中查找指定文件
    字体图标使用笔记
    微信扫码显示特效
    Flex 布局教程:实例篇
    Flex 布局教程:语法篇
    12月份前端资源分享
    什么样的技术能活下来?该如何筛选繁复的框架和工具
    web前端知识在乱花渐欲迷人眼的当下,如何分清主次和学习优先级呢?
    2015前端生态发展回顾(转)
    HDU1507 Uncle Tom's Inherited Land*
  • 原文地址:https://www.cnblogs.com/caoleiCoding/p/6545535.html
Copyright © 2011-2022 走看看