生成随机字符串

生成随机字符串

public class RandomString {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("请输入一个长度:");
		Scanner sc = new Scanner(System.in);
		int number = sc.nextInt();
		String result = "";
		char x;
		
		for(int i = 0;i<number;i++) {
//			x = (char)(Math.random()*((0xffff)+1));
			x = (char)(Math.random()*((128)+1));
			if((x>='0'&&x<='9')||(x>='A'&&x<='Z')||(x>='a'&&x<='z') ){
				result+=x;
			}else {
				i--;
			}
		}
		System.out.println(result);
	}

}

总结:

1.生成随机字符的范围

			x = (char)(Math.random()*((0xffff)+1));

math.random()函数是取[0,1)之间的随机数,则math.random()*a表示[0,a)之间的随机数,(math.random()*40)*10表示[0,400)之间的随机数,如需取整则int((math.random()*40)*10)这样。

上面代码的意思是取[0,1)*(65535+1) 的范围是0~65535

ASCII控制字符

二进制 十进制 十六进制 缩写 可以显示的表示法 名称/意义
0000 0000 0 00 NUL ␀ 空字符(Null)
0000 0001 1 01 SOH ␁ 标题开始
0000 0010 2 02 STX ␂ 本文开始
0000 0011 3 03 ETX ␃ 本文结束
0000 0100 4 04 EOT ␄ 传输结束
0000 0101 5 05 ENQ ␅ 请求
0000 0110 6 06 ACK ␆ 确认回应
0000 0111 7 07 BEL ␇ 响铃
0000 1000 8 08 BS ␈ 退格
0000 1001 9 09 HT ␉ 水平定位符号
0000 1010 10 0A LF ␊ 换行键
0000 1011 11 0B VT ␋ 垂直定位符号
0000 1100 12 0C FF ␌ 换页键
0000 1101 13 0D CR ␍ 归位键
0000 1110 14 0E SO ␎ 取消变换(Shift out)
0000 1111 15 0F SI ␏ 启用变换(Shift in)
0001 0000 16 10 DLE ␐ 跳出数据通讯
0001 0001 17 11 DC1 ␑ 设备控制一(XON 启用软件速度控制)
0001 0010 18 12 DC2 ␒ 设备控制二
0001 0011 19 13 DC3 ␓ 设备控制三(XOFF 停用软件速度控制)
0001 0100 20 14 DC4 ␔ 设备控制四
0001 0101 21 15 NAK ␕ 确认失败回应
0001 0110 22 16 SYN ␖ 同步用暂停
0001 0111 23 17 ETB ␗ 区块传输结束
0001 1000 24 18 CAN ␘ 取消
0001 1001 25 19 EM ␙ 连接介质中断
0001 1010 26 1A SUB ␚ 替换
0001 1011 27 1B ESC ␛ 跳出
0001 1100 28 1C FS ␜ 文件分割符
0001 1101 29 1D GS ␝ 组群分隔符
0001 1110 30 1E RS ␞ 记录分隔符
0001 1111 31 1F US ␟ 单元分隔符
0111 1111 127 7F DEL ␡ 删除

image-20210309150917652

		if((x>='0'&&x<='9')||(x>='A'&&x<='Z')||(x>='a'&&x<='z') ){
			result+=x;
		}else {
			i--;
		}

此处的i--代表如果不是指定范围内的字符就废弃掉。

posted @ 2021-03-09 15:17  记录学习Blog  阅读(675)  评论(0)    收藏  举报