要求随机生成数字(0-9)和字母(a-z和A-Z)我写了个类MyRandom,返回(min-max]间的一个数(对应字母ascii码值).然后在主程序里生成一个Random对象,
如果为1就随机生成(0-9),2生成a-z,3生成A-Z
这样达到随机生成数字和字母的效果,各位大哥门还有别的好方法吗?
各位大哥门还有别的好方法吗?我的代码如下,新手,很少写东西.呵呵,惭愧.大家多指教
------------------------------------------------------------
import java.util.Random;
class MyRandom{
private int max;
private int min;
private int num;
private int tmp;
Random rMax = new Random();
Random rMin = new Random(); public MyRandom(int min, int max) {
this.max = max;
this.min = min;
}
public int getNum() {
do{
num = rMax.nextInt(max);
}
while (num < min);
return num;
} // end ranNum
} // end classpublic class Test {
public static void main(String[] args) {
String s;
// 数字和大、小写字母分布的3个区域
MyRandom random1 = new MyRandom(48, 57);
MyRandom random2 = new MyRandom(65, 90);
MyRandom random3 = new MyRandom(97, 122); // 随机选择进入这三个区域
Random ranTmp = new Random();
int tmp = 0; byte[] b = new byte[15]; for(int i = 0 ; i < 15; i++ ){
tmp = ranTmp.nextInt(3);
switch(tmp) {
case 0:
b[i] = (byte)random1.getNum();
break;
case 1:
b[i] = (byte)random2.getNum();
break;
case 2:
b[i] = (byte)random3.getNum();
break;
} System.out.print(b[i] + " "); } // end for
s = new String(b);
System.out.print(s);
} // end main
} // end Test
如果为1就随机生成(0-9),2生成a-z,3生成A-Z
这样达到随机生成数字和字母的效果,各位大哥门还有别的好方法吗?
各位大哥门还有别的好方法吗?我的代码如下,新手,很少写东西.呵呵,惭愧.大家多指教
------------------------------------------------------------
import java.util.Random;
class MyRandom{
private int max;
private int min;
private int num;
private int tmp;
Random rMax = new Random();
Random rMin = new Random(); public MyRandom(int min, int max) {
this.max = max;
this.min = min;
}
public int getNum() {
do{
num = rMax.nextInt(max);
}
while (num < min);
return num;
} // end ranNum
} // end classpublic class Test {
public static void main(String[] args) {
String s;
// 数字和大、小写字母分布的3个区域
MyRandom random1 = new MyRandom(48, 57);
MyRandom random2 = new MyRandom(65, 90);
MyRandom random3 = new MyRandom(97, 122); // 随机选择进入这三个区域
Random ranTmp = new Random();
int tmp = 0; byte[] b = new byte[15]; for(int i = 0 ; i < 15; i++ ){
tmp = ranTmp.nextInt(3);
switch(tmp) {
case 0:
b[i] = (byte)random1.getNum();
break;
case 1:
b[i] = (byte)random2.getNum();
break;
case 2:
b[i] = (byte)random3.getNum();
break;
} System.out.print(b[i] + " "); } // end for
s = new String(b);
System.out.print(s);
} // end main
} // end Test
解决方案 »
- 数据库连接异常
- 介绍本JAVA数据结构的好书
- 哪位弟兄的机器上装了JDK6.0的帮忙做个测试
- 那位高手帮我看看是个什么问题?
- 如何在JAVA里代码实现将WORD和EXCEL文档转换为TEXT或图片文件呢??有相关类可以用不???
- 如何用rmi传送文件,请高手指点
- 一个数组与集合的问题,请帮我看看,先谢谢了!~
- 小问题,怎么判断这个控件是JTextField呢?请看下面代码
- 线程安全问题,详细请进!分多多.....
- 向各位调查目前上海从事Java\Servlet\Ejb\jsp的程序员每月能拿多少薪水啊?
- Java里如何去何取汉安拼音头,谢谢?
- 如何将System.in读取的流用String代替?就是想将键盘输入改成一个字符为题输入。
应该是num = rMax.nextInt(max+1);因为产生的随机数不含传的那个值而且这样好一点
public int getNum() {
num = rMax.nextInt(max-min+1)+min;
return num;
} // end ranNum