产生0-9 A-Z a-z
》题目要求:
》》产生26个大写字母
》》产生26个小写字母
》》产生0-9这10个阿拉伯数字
》程序实现:
package cn.fury.test;
public class Test{
public static void main(String[] args) {
System.out.println((int)'a' + " " + (int)'z' + " " + (int)'A' + " " + (int)'Z');
for(char i = 'a'; i <= 'z'; i++){
System.out.print("\'" + i + "\'" + ",");
}
System.out.println();
for(char i = 'A'; i <= 'Z'; i++){
System.out.print("\'" + i + "\'" + ",");
}
System.out.println();
for(char i = '0'; i <= '9'; i++){
System.out.print("\'" + i + "\'" + ",");
}
System.out.println();
char [] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n',
'o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D',
'E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T',
'U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9'};
System.out.println(alphabet.length);
}
}
》程序改进
》》怎么将产生的这些字符都放到一个字符数组里面
》》notice:该程序员有点懒,持续更新中......
》 改进方案
定义一个空数组,一个一个的将字符放到里面去;先对数组进行扩容,再将字符放到里面去
数组扩容:Arrays.copyOf(需要扩容的数组, 扩容长度) -->> 返回的是一个数组
》 改进程序
package atest.dak.com;
import java.util.Arrays;
public class Test{
public static void main(String[] args) {
char[] letters = create_alphabet();
System.out.println(Arrays.toString(letters));
}
/**
* 产生全部大写字母和全部小写字母还有0到9的阿拉伯数字
* @return TODO
*
*/
private static char[] create_alphabet() {
char x = 'a';
char y = 'A';
char z = '0';
char [] alphabet = {}; //用于存放字符
for(int i = 0; i < 26; i++) { //将26个小写字母放到alphabet数组中去
alphabet = Arrays.copyOf(alphabet, alphabet.length + 1); //扩容处理
alphabet[alphabet.length - 1] = (char)(x + i); //添加元素
}
for(int i = 0; i < 26; i++) { //将26个大写字母放到alphabet数组中去
alphabet = Arrays.copyOf(alphabet, alphabet.length + 1);
alphabet[alphabet.length - 1] = (char)(y + i);
}
for(int i = 0; i <= 9; i++) { //将10个阿拉伯数字放到alphabet中去
alphabet = Arrays.copyOf(alphabet, alphabet.length + 1);
alphabet[alphabet.length - 1] = (char)(z + i);
}
// System.out.println(Arrays.toString(alphabet));
return alphabet;
}
}
》 程序改进
》》 提醒用户输入一个整型数字,控制台返回指定个数的字母和阿拉伯数字,要求不重复
》 改进方案
》》 通过产生随机数来确定存放字母和阿拉伯数字的char数组的索引,再通过同该数组长度一样的一个boolean数组来存放每个元素是否选中的状态,每选中一个元素后就将这个元素的状态变成选中状态,从而防止再次选中
》 改进程序
package atest.dak.com; import java.util.Arrays;
import java.util.Random;
import java.util.Scanner; public class Test{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("请输入需要产生的验证码的数量:");
int number = scan.nextInt();
char [] ran_verification_code = create_verification_code(number);
System.out.println("随机产生的" + number + "个验证码为: " + Arrays.toString(ran_verification_code));
} /**
* 随机产生指定数量的验证码
* @param number TODO
* @return TODO
*
*/
private static char[] create_verification_code(int number) {
char[] letter = create_alphabet(); //存放所有的字母
boolean [] judge = new boolean[letter.length]; //存放所有字母是否被选中的状态
char[] ran_num = {}; //存放随机产生的验证码
int index = 0;
Random random = new Random();
for(int i = 0; i < number; i++) {
do {
index = random.nextInt(letter.length);
} while(judge[index]);
judge[index] = true; //没选中一个字母,就将这个字母的状态变成选中
ran_num = Arrays.copyOf(ran_num, ran_num.length + 1); //扩容处理
ran_num[ran_num.length - 1] = letter[index]; //添加元素
}
// System.out.println(Arrays.toString(ran_num));
return ran_num;
} /**
* 产生全部大写字母和全部小写字母还有0到9的阿拉伯数字
* @return TODO
*
*/
private static char[] create_alphabet() {
char x = 'a';
char y = 'A';
char z = '0';
char [] alphabet = {}; //用于存放字符
for(int i = 0; i < 26; i++) { //将26个小写字母放到alphabet数组中去
alphabet = Arrays.copyOf(alphabet, alphabet.length + 1); //扩容处理
alphabet[alphabet.length - 1] = (char)(x + i); //添加元素
}
for(int i = 0; i < 26; i++) { //将26个大写字母放到alphabet数组中去
alphabet = Arrays.copyOf(alphabet, alphabet.length + 1);
alphabet[alphabet.length - 1] = (char)(y + i);
}
for(int i = 0; i <= 9; i++) { //将10个阿拉伯数字放到alphabet中去
alphabet = Arrays.copyOf(alphabet, alphabet.length + 1);
alphabet[alphabet.length - 1] = (char)(z + i);
}
// System.out.println(Arrays.toString(alphabet));
return alphabet;
} }
》 程序改进
》》 提醒用户输入验证码,判断用户是否输入正确;如果输入错误返回正确的个数(位置和内容都正确才算正确)
》》 待改进中......2017年3月1日10:48:28
产生0-9 A-Z a-z的更多相关文章
- hdu4282 x^z+y^z+x*y*z=k 解的个数
题意: x^z + y^z + x*y*z = k; (x < y ,z > 1),给你一个k问有多少组解. 思路: 暴力枚举z,y,然后二分查找x.注意一点最好用 ...
- ruby中的\z与\Z区别
s = "this is\nthe name\n" puts "--------------" puts s.match(/name\Z/) puts s.ma ...
- [Mathematics][Fundamentals of Complex Analysis][Small Trick] The Trick on drawing the picture of sin(z), for z in Complex Plane
Exercises 3.2 21. (a). For $\omega = sinz$, what is the image of the semi-infinite strip $S_1 = \{x+ ...
- Android立体旋转动画实现与封装(支持以X、Y、Z三个轴为轴心旋转)
本文主要介绍Android立体旋转动画,或者3D旋转,下图是我自己实现的一个界面 立体旋转分为以下三种: 1. 以X轴为轴心旋转 2. 以Y轴为轴心旋转 3. 以Z轴为轴心旋转--这种等价于andro ...
- 变量的解构赋值////////////z
变量的解构赋值 数组的解构赋值 对象的解构赋值 字符串的解构赋值 数值和布尔值的解构赋值 函数参数的解构赋值 圆括号问题 用途 数组的解构赋值 基本用法 ES6允许按照一定模式,从数组和对象中提取值, ...
- Devexpress GridControl z
http://minmin86121.blog.163.com/blog/static/4968115720144194923578/ 1 AllowNullInput=False; --Devexp ...
- 【算法】字符串匹配之Z算法
求文本与单模式串匹配,通常会使用KMP算法.后来接触到了Z算法,感觉Z算法也相当精妙.在以前的博文中也有过用Z算法来解决字符串匹配的题目. 下面介绍一下Z算法. 先一句话讲清楚Z算法能求什么东西. 输 ...
- CF #344 D. Messenger KMP/Z
题目链接:http://codeforces.com/problemset/problem/631/D 给定两个压缩形式的字符串,如a3b5a4k7这样的形式 问A在B中出现次数. 分类讨论,如果A是 ...
- CF #93 div1 B. Password KMP/Z
题目链接:http://codeforces.com/problemset/problem/126/B 大意:给一个字符串,问最长的既是前缀又是后缀又是中缀(这里指在内部出现)的子串. 我自己的做法是 ...
- Zepto源码分析之二(新旧版本zepto.Z方法的区别)
在上一节中讲到Z()方法,是在初始化函数init中直接调用zepto.Z() zepto.Z = function(dom, selector) { dom = dom || [] dom.selec ...
随机推荐
- [Cocos2d-x For WP8]矩形碰撞检测
在游戏中我们通常会涉及到两个精灵之间的碰撞的计算,那么在Cocos2d-x里面我们通常会用矩形碰撞检测来计算两个精灵在运动的过程中是否碰撞到了.原理很简单,就是当运动的时候通过精灵的矩形坐标进行遍历来 ...
- Android --RatingBar的使用
1.效果图
- 一、午夜倒数《苹果iOS实例编程入门教程》
该app为应用的功能为计算离午夜12:00点的剩余时间 现版本 SDK 8.4 Xcode 运行Xcode 选择 Create a new Xcode project ->Single View ...
- pr高的2级域名站点如何做优化?
优化方法: 二级域名的内容建设也需要细致化 很多人认为,优化二级域名没有优化顶级域名那么多工作,只需要发发外链就可以了,这可以说是一个误区.我们的目的是要优化二级域名到首页,让用户能够看到,如果我们的 ...
- wego微购RSS、Sitemap、Ping、腾讯拍拍网购采集插件
和哥们研究淘宝客,找到微购这个程序觉得挺不错的,但是地图和RSS功能不是特别完善,于是小憩一下,做了下初级的拓展,分享给大家,开源精神嘛,大家也可以去我的网站我要购物平台去看看. 1.拓展后台seoA ...
- Java基础:继承,封装,多态,抽象类,接口
只要是从事Java语言有关的开发工作,在面试中难念会被问到这几个东西. 博主学习java有两年多了,算是浅显的知道一些,抄写了一些解释分享一下. 1.什么是面向对象?(面对女朋友) 面向对象(Obje ...
- 存储过程: 存储过程(stored procedure)有时也称为sproc。存储过程存储于数据库中而不是在单独的文件中,有输入参数、输出参数以及返回值等。
存储过程示例一: 执行存储过程方法一: 执行存储过程方法二: 存储过程可以定义返回值: 修改存储过程: 利用存储过程查找三个表内的信息: 练习: 超市管理系统:表一:门店仓库表 MenDian ...
- SQL 语句调用这个存储过程,生成顺序编码
一直很讨厌存储过程,没想到今天帮了我大忙啊,或许会因为今天让我慢慢喜欢上存储过程吧,不多说了,切入正题 在使用数据库的时候,难免要在使用过程中进行删除的操作,如果是使用int类型的字段,令其自增长,这 ...
- ajax实现文件上传
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- hdu 4897 Little Devil I
传送阵:http://acm.hdu.edu.cn/showproblem.php?pid=4897 题目大意:一棵树,三个操作:1.将某条链取反,2.将与某条链相邻的边取反,3.查询某条链上为1的边 ...