zoukankan      html  css  js  c++  java
  • 生成随机string

    转自:http://blog.csdn.net/yaodong_y/article/details/8115250

    字母与数字的ASCII码

    目 前计算机中用得最广泛的 字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。
         因为1位二进制数可以表示(21=)2种状态:0、1;而 2位二进制数可以表示(22)=4种状态:00、01、10、11;依次类推,7位二进制数可以表示(27=)128种状态,每种状态都唯一地编为一个7 位的二进制码,对应一个字符(或控制码),这些码可以排列成一个十进制序号0~127。所以,7位ASCII码是用七位二进制数进行编码的,可以表示 128个字符。
         第0~32号及第127号(共34个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;
         第33~126号(共94个)是字符,其中第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
         注意:在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来 检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规 定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。 
         为了便于查询,以下列出ASCII码表:常用ASCII 码对照表

    ASCII码 键盘 ASCII 码 键盘 ASCII 码 键盘 ASCII 码 键盘
    27 ESC 32 SPACE 33 ! 34 "
    35 # 36 $ 37 % 38 &
    39 ' 40 ( 41 ) 42 *
    43 + 44 ' 45 - 46 .
    47 / 48 0 49 1 50 2
    51 3 52 4 53 5 54 6
    55 7 56 8 57 9 58 :
    59 ; 60 < 61 = 62 >
    63 ? 64 @ 65 A 66 B
    67 C 68 D 69 E 70 F
    71 G 72 H 73 I 74 J
    75 K 76 L 77 M 78 N
    79 O 80 P 81 Q 82 R
    83 S 84 T 85 U 86 V
    87 W 88 X 89 Y 90 Z
    91 [ 92 93 ] 94 ^
    95 _ 96 ` 97 a 98 b
    99 c 100 d 101 e 102 f
    103 g 104 h 105 i 106 j
    107 k 108 l 109 m 110 n
    111 o 112 p 113 q 114 r
    115 s 116 t 117 u 118 v
    119 w 120 x 121 y 122

    z

    123 { 124 | 125 } 126 ~

    利用这个原理,编写有用的小例子

    import java.util.Random;

    public class StringRandom {

    //生成随机数字和字母,
    public String getStringRandom(int length) {

    String val = "";
    Random random = new Random();

    //参数length,表示生成几位随机数
    for(int i = 0; i < length; i++) {

    String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
    //输出字母还是数字
    if( "char".equalsIgnoreCase(charOrNum) ) {
    //输出是大写字母还是小写字母
    int temp = random.nextInt(2) % 2 == 0 ? 65 : 97;
    val += (char)(random.nextInt(26) + temp);
    } else if( "num".equalsIgnoreCase(charOrNum) ) {
    val += String.valueOf(random.nextInt(10));
    }
    }
    return val;
    }

    public static void main(String[] args) {
    StringRandom test = new StringRandom();
    //测试
    System.out.println(test.getStringRandom(8));
    }
    }


     


    测试结果:(8位)mP8V60yt

  • 相关阅读:
    【洛谷P1119】灾后重建
    【洛谷P1462】通往奥格瑞玛的道路
    【洛谷P1991】无线通讯网
    poj 2892(二分+树状数组)
    hdu 1541(树状数组)
    hdu 5059(模拟)
    hdu 5056(尺取法思路题)
    poj 2100(尺取法)
    hdu 2739(尺取法)
    poj 3320(尺取法)
  • 原文地址:https://www.cnblogs.com/melody-emma/p/4317258.html
Copyright © 2011-2022 走看看