我是靠谱客的博主 落寞过客,最近开发中收集的这篇文章主要介绍随机产生字母a--z, A-Z 的任意组合,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

VERSION 1.0    引自: http://www.coderanch.com/t/134491/Security/generating-secure-tokens

package demo;

import java.util.Random;
  
/*
  * This code is a discussion of an opinion in a technical forum.
  * You may develope ideas from this code. You may not use it directly.
  */
  
public class DM
{
     String getRandomIdentifier( int length) throws Exception
     {
         final int limitingValue = 64 ; // Whatever you decide, not me.
         if (length < limitingValue)
         {
             try
             {
                 // The first step is to get a filename generator
                 char lowerBound =   'a' ;
                 char upperBound =   'z' ;
                 Random randomCharacterGenerator = new Random();
                 // Then get some characters
                 char [] identifierBuffer = new char [length]; //
                 int index = identifierBuffer.length; //
                 final int numericLowerBound = ( int ) lowerBound;
                 final int numericUpperBound = ( int ) upperBound;
                 final int range = numericUpperBound - numericLowerBound; //
                 do
                 {
                     // recoded in mesage edit, original defective
                     int getOne = randomCharacterGenerator.nextInt(range);
                     int next = numericLowerBound + getOne;
                     identifierBuffer[--index] = ( char ) next;
                 }
                 while (index > 0x00000000 );
                 return new String(identifierBuffer); //
             }
             catch (ArrayIndexOutOfBoundsException aioobe)
             {
                 System.out.println(aioobe.getMessage());
             }
         }
         else
         {
             throw new Exception( "Contact system administrator." ); //
         }
         return null ;
     }
}

 

VERSION 2.0    改进型:

package token;

import java.util.Random;

public class DM {
    public static void main(String[] args) throws Exception {
        System.out.println("1==97===:" + (int) 'a');
        System.out.println("2==122===:" + (int) 'z');
        System.out.println("3==65===:" + (int) 'A');
        System.out.println("4===90==:" + (int) 'Z');
        DM mn = new DM();
        System.out.println(mn.getRandomIdentifier(26));
    }

    String getRandomIdentifier(int length) throws Exception {
        final int limitingValue = 164;// Whatever you decide, not me.
        if (length < limitingValue) {
            try {
                // 26个小写+26个大小 = 52 字母
                final int range = 52;//
                char[] charStr = new char[range];
                int j = 0;
                // A=65, z =122
                for (int i = 65; i <= 122; i++) {
                    // Z--a 之间的跳过
                    if (i > 90 && i < 97) {
                        continue;
                    }
                    charStr[j] = (char) i;   // 这里将保存52个大小字母
                    j++;
                }

                   // 这里其实可以将 0 - 9 的数字也添加进去
                Random randomCharacterGenerator = new Random();
                // Then get some characters
                char[] identifierBuffer = new char[length];//
                int index = identifierBuffer.length;//
                do {
                    // 产生0至51 共52个随机数,用于索引字母数组
                    int getOne = randomCharacterGenerator.nextInt(range);
                    identifierBuffer[--index] = charStr[getOne];
                } while (index > 0x00000000);
                return new String(identifierBuffer);//
            } catch (ArrayIndexOutOfBoundsException aioobe) {
                System.out.println(aioobe.getMessage());
            }
        } else {
            throw new Exception("Contact system administrator.");//
        }
        return null;
    }

}

转载于:https://www.cnblogs.com/dragonflyyi/p/4403579.html

最后

以上就是落寞过客为你收集整理的随机产生字母a--z, A-Z 的任意组合的全部内容,希望文章能够帮你解决随机产生字母a--z, A-Z 的任意组合所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部