四时宝库

程序员的知识宝库

java基础学习——生成随机字符(java生成随机字母的方法)

package cn.javastudy;

/*生成随机字符

* 字符是使用整数来编码的,产生一个字符就是产生一个整数

* 每一个字符都有唯一的存在十六进制数0到ffff之间的Unicode

* 表达式:

* (int) (Math.random()*(65535+1))

* (int)'a'到(int)'z'之间的随机整数是:

* (int )((int)'a' + Math.random()*((int)'z' - (int)'a' + 1))

*

* 由此可以生成任意两个ch1和ch2之间的字符:

* (char)(ch1 + Math.random() * (ch2 - ch1 + 1))

*

*/

public class RandomCharacter{

public static char getRandomCharacter(char ch1,char ch2){

return (char)(ch1+Math.random()*(ch2-ch1));

}

public static char getRandomLowerCaseLetter(){ //产生随机小写字母

return getRandomCharacter('a','z');

}

public static char getRandomUpperCaseLetter() { //产生随机大写字母

return getRandomCharacter('A','Z');

}

public static char getRandomDigitCharacter() { //产生随机数字字符

return getRandomCharacter('0','9');

}

public static char geRandomtCharacter() { //产生随机字符

return getRandomCharacter('\u0000','\uFFFF');

}

}

由上面的代码我们可以知道他有五个重载的方法,随机获取某种特定类型的字符。

下面给出一个测试程序

package cn.javastudy;

/*测试类

* 显示175个随机小写字母

*/

public class TestRandomCharacter {

public static void main(String[] args) {

final int NUMBER_OF_CHARS = 175;

final int CHARS_PER_LINE = 25;

for(int i = 0;i<NUMBER_OF_CHARS;i++) {

char ch = RandomCharacter.getRandomLowerCaseLetter();

if((i+1)%CHARS_PER_LINE==0) {

System.out.println(ch);

}else {

System.out.print(ch);

}

}

}

最后结果如图:

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接